type Payload = Record<string, any> | any[];
export type FlattenConfig = {
    delimiter?: string;
    safe?: boolean;
    safes?: string[];
    depth?: number;
    transformKey?: (key: string) => string;
};
export type UnflattenConfig = {
    delimiter?: string;
    overwrite?: boolean;
    object?: boolean;
    transformKey?: (key: string) => string;
};
export declare class Flattener {
    private readonly payload;
    private readonly defaultFlattenConfig;
    private readonly defaultUnflattenConfig;
    constructor(payload: Payload);
    flatten(config?: FlattenConfig): Record<string, any>;
    unflatten(config?: UnflattenConfig): Record<string, any>;
    static _flatten(payload: Payload, config: Required<FlattenConfig>, prefix?: string, step?: number): Record<string, any>;
    static _unflatten(flat: Record<string, any>, config: Required<UnflattenConfig>): Record<string, any>;
    static flatten(payload: Payload, config?: FlattenConfig): Record<string, any>;
    static unflatten(flat: Record<string, any>, config?: UnflattenConfig): Record<string, any>;
}
export default Flattener;
//# sourceMappingURL=index.d.ts.map