import { VersionedData } from '../api/interfaces';
import { Flag } from '../evaluation/data/Flag';
import { Segment } from '../evaluation/data/Segment';
import { VersionedDataKind } from './VersionedDataKinds';
export interface FlagsAndSegments {
    flags: {
        [name: string]: Flag;
    };
    segments: {
        [name: string]: Segment;
    };
}
export interface AllData {
    data: FlagsAndSegments;
}
/**
 * Performs deep removal of null values.
 *
 * Does not remove null values from arrays.
 *
 * Note: This is a non-recursive implementation for performance and to avoid
 * potential stack overflows.
 *
 * @param target The target to remove null values from.
 * @param excludeKeys A list of top-level keys to exclude from null removal.
 */
export declare function nullReplacer(target: any, excludeKeys?: string[]): void;
export interface DeleteData extends Omit<VersionedData, 'key'> {
    path: string;
    kind?: VersionedDataKind;
}
type VersionedFlag = VersionedData & Flag;
type VersionedSegment = VersionedData & Segment;
export interface PatchData {
    path: string;
    data: VersionedFlag | VersionedSegment;
    kind?: VersionedDataKind;
}
/**
 * This function is intended for usage inside LaunchDarkly SDKs.
 * This function should NOT be used by customer applications.
 * This function may be changed or removed without a major version.
 *
 * @param data String data from launchdarkly.
 * @returns The parsed and processed data.
 */
export declare function deserializePoll(data: string): FlagsAndSegments | undefined;
export {};
//# sourceMappingURL=serialization.d.ts.map