import { Chunk, StringPool } from "./common";
import Source from "./source";
declare class Table {
    readonly packageCount: number;
    readonly stringPool: StringPool;
    readonly packages: Map<number, TablePackageChunk>;
    constructor(chunk: Chunk);
}
declare class TablePackageChunk {
    private static getOrCreate;
    readonly id: number;
    readonly name: string;
    readonly typeStrings: number;
    readonly lastPublicType: number;
    readonly keyStrings: number;
    readonly lastPublicKey: number;
    readonly types: Map<number, TableTypeChunk[]>;
    constructor(chunk: Chunk, stringPool: StringPool);
}
declare class TableTypeChunk {
    private static readonly NO_ENTRY;
    readonly id: number;
    readonly flags: number;
    readonly reserved: number;
    readonly entryCount: number;
    readonly entriesStart: number;
    readonly resTableConfig: ResTableConfig;
    readonly entries: Map<number, TableEntry>;
    constructor(chunk: Chunk, stringPool: StringPool);
    resolve(index: number): any;
}
declare class ResTableConfig {
    readonly size: number;
    readonly imsi: number;
    readonly locale: Locale;
    readonly screenType: number;
    readonly input: number;
    readonly screenSize: number;
    readonly version: number;
    constructor(chunk: Chunk);
}
export declare class Locale {
    private static readonly EMPTY_CODE;
    private readonly languageCode;
    private readonly countryCode;
    constructor(source: Source);
    private convertCode;
    get language(): string | undefined;
    get country(): string | undefined;
}
declare class TableEntry {
    readonly size: number;
    readonly flags: number;
    readonly index: number;
    readonly value: any;
    constructor(source: Source, stringPool: StringPool);
}
export declare class Resource {
    readonly value: any;
    readonly locale?: Locale;
    constructor(value: any, locale: Locale);
}
export declare class Resources {
    readonly table: Table;
    constructor(source: Source);
    resolve(id: number): Resource[];
}
export {};
