1import { XMLObject } from '../utils/XML'; 2export declare type ResourceGroupXML = { 3 $: { 4 name: string; 5 parent: string; 6 }; 7 item: ResourceItemXML[]; 8}; 9export declare type ResourceXML = { 10 resources: { 11 $?: { 12 'xmlns:tools'?: string; 13 }; 14 color?: ResourceItemXML[]; 15 string?: ResourceItemXML[]; 16 style?: ResourceGroupXML[]; 17 }; 18}; 19export declare type ResourceItemXML = { 20 _: string; 21 $: { 22 name: string; 23 'tools:targetApi'?: string; 24 translatable?: string; 25 }; 26}; 27/** 28 * Name of the resource folder. 29 */ 30export declare type ResourceKind = 'values' | 'values-night' | 'values-v23' | 'values-night-v23' | 'drawable'; 31/** 32 * Read an XML file while providing a default fallback for resource files. 33 * 34 * @param options path to the XML file, returns a fallback XML if the path doesn't exist. 35 */ 36export declare function readResourcesXMLAsync({ path, fallback, }: { 37 path: string; 38 fallback?: string | null; 39}): Promise<ResourceXML>; 40/** 41 * Ensure the provided xml has a `resources` object (the expected shape). 42 * 43 * @param xml 44 */ 45export declare function ensureDefaultResourceXML(xml: XMLObject): ResourceXML; 46/** 47 * Build a `ResourceItemXML` given its `name` and `value`. This makes things a bit more readable. 48 * 49 * - JSON: `{ $: { name }, _: value }` 50 * - XML: `<item name="NAME">VALUE</item>` 51 * 52 * @param props name and value strings. 53 */ 54export declare function buildResourceItem({ name, value, targetApi, translatable, }: { 55 name: string; 56 value: string; 57 targetApi?: string; 58 translatable?: boolean; 59}): ResourceItemXML; 60export declare function buildResourceGroup(parent: { 61 name: string; 62 parent: string; 63 items?: ResourceItemXML[]; 64}): ResourceGroupXML; 65export declare function findResourceGroup(xml: ResourceGroupXML[] | undefined, group: { 66 name: string; 67 parent?: string; 68}): ResourceGroupXML | null; 69/** 70 * Helper to convert a basic XML object into a simple k/v pair. 71 * 72 * @param xml 73 * @returns 74 */ 75export declare function getResourceItemsAsObject(xml: ResourceItemXML[]): Record<string, string> | null; 76/** 77 * Helper to convert a basic k/v object to a ResourceItemXML array. 78 * 79 * @param xml 80 * @returns 81 */ 82export declare function getObjectAsResourceItems(obj: Record<string, string>): ResourceItemXML[]; 83export declare function getObjectAsResourceGroup(group: { 84 name: string; 85 parent: string; 86 item: Record<string, string>; 87}): ResourceGroupXML; 88