type GNDataType = string | number | boolean | null | GNArray | GNHashtable;
interface IGNData {
    toData(): any;
}
export declare abstract class GNData implements IGNData {
    protected get<T>(k: string | number, def?: T): T;
    abstract clear(): void;
    abstract remove(k: string | number): boolean;
    abstract count(): number;
    getBoolean(k: string | number, def?: boolean): boolean;
    getObject(k: string | number, def?: object): object;
    getString(k: string | number, def?: string): string;
    getNumber(k: string | number, def?: number): number;
    getGNHashtable(k: string | number, def?: GNHashtable): GNHashtable;
    getGNArray(k: string | number, def?: GNArray): GNArray;
    private static createGNHashtableFromObject;
    private static createGNArrayFromArray;
    protected static createUseDataFromOriginData(value: any): GNDataType;
    protected static createDataFromUseData(value: GNDataType): any;
    abstract toData(): any;
}
export declare class GNHashtableBuilder {
    private dict;
    add(k: string, value: any): GNHashtableBuilder;
    addAll(dict: {
        [k: string]: any;
    }): this;
    constructor();
    build(): GNHashtable;
}
export declare class GNHashtable extends GNData {
    private dict;
    clear(): void;
    remove(k: string): boolean;
    count(): number;
    containsKey(k: string): boolean;
    protected get<T>(k: string, def?: T): T;
    add(k: string, value: any): void;
    toData(): {};
    static builder(): GNHashtableBuilder;
    toString(): string;
}
export declare class GNArrayBuilder {
    private array;
    add(value: any): GNArrayBuilder;
    addAll(array: any[]): GNArrayBuilder;
    build(): GNArray;
    constructor();
}
export declare class GNArray extends GNData {
    private array;
    clear(): void;
    indexOf(item: GNDataType): number;
    remove(k: number): boolean;
    count(): number;
    protected get<T>(k: number, def?: T): T;
    add(value: any): void;
    toData(): any[];
    static builder(): GNArrayBuilder;
    toString(): string;
}
export {};
