/// <reference types="react" />
import { TypescriptResultSet } from '../ResultSet/ResultSet';
declare type Dictionary<K extends string | number, V> = K extends string ? {
    [key: string]: V;
} : {
    [key: number]: V;
};
export declare const assertionWithErrorPrefix: <T>(prefix: string) => (assertion: (value: T) => T) => (value: T) => T;
export declare const assertPresence: <T>(value: T, isNonNullable: boolean) => T | undefined;
export declare const assertPresenceStrict: <T>(value: T) => T | undefined;
export declare const assertString: <T extends string>(value: T, length?: number | undefined) => T;
export declare const assertInt: <T extends Int>(value: T) => T;
export declare const assertLong: <T extends Long>(value: T) => T;
export declare const assertShort: <T extends Short>(value: T) => T;
export declare const assertFloatingPoint: <T extends number>(value: T) => T;
export declare const serializeBinary: (value: BinaryStr) => BinaryStr;
export declare const deserializeBinary: (value: BinaryStr) => BinaryStr;
export declare const assertArray: <T>(it: T[]) => T[];
export declare const serializeSet: <T>(it: Set<T>) => T[];
export declare const deserializeSet: <T>(it: T[]) => Set<T>;
export declare const serializeMap: <K extends import("react").ReactText, V>(it: Map<K, V>) => Dictionary<K, V>;
export declare const deserializeMap: <K extends import("react").ReactText, V>(it: Dictionary<K, V>) => Map<K, V>;
export declare const assertIterable: <T>(it: Iterable<T>) => T[];
export declare const serializeResultSet: (it: TypescriptResultSet) => ResultSet;
export declare const deserializeResultSet: (it: ResultSet) => TypescriptResultSet;
export declare const assertEnum: <T>(values: T[], name: string) => (it: T, isNonNullable: boolean, _: string) => T;
interface IDictionary {
    [key: string]: string;
}
export declare const assertDictionary: (value: any, field: string) => IDictionary;
export declare const assertS3: (value: any) => S3;
export {};
