export type StorageOptions = {
    /**
     * The id of the instance to be created. Default id is "default".
     */
    instanceID: string;
    /**
     * Specifies if the storage instance should be encrypted
     */
    initWithEncryption: boolean;
    /**
     * Specifies if the password be stored in Keychain
     *
     * Default: true
     */
    secureKeyStorage: boolean;
    /**
     * Set the AccessibleMode for iOS
     * Import IOSAccessibleStates from library to use it.
     */
    accessibleMode: string;
    /**
     * Multi Process or Single Process.
     *
     * Use Multi Process if your app needs to share storage between app widgets/extensions etc
     */
    processingMode: number;
    aliasPrefix: string;
    /**
     * The alias which is used to store the password in Keychain
     */
    alias: string | null;
    /**
     * Password for encrypted storage
     */
    key: string | null;
    /**
     * Specify the service name to use if using react-native-keychain library.
     */
    serviceName: string | null;
    /**
     * Is the storage ready?
     */
    initialized: boolean;
    /**
     * Persist default values in hooks
     */
    persistDefaults: boolean;
    /**
     * Toggle indexing of values by type.
     *
     * @default true
     */
    enableIndexing: boolean;
};
export type DataType = 'string' | 'number' | 'object' | 'array' | 'boolean';
export type GenericReturnType<T> = [key: string, value: T | null | undefined];
export type IndexType = 'stringIndex' | 'boolIndex' | 'numberIndex' | 'mapIndex' | 'arrayIndex';
export type MMKVJsiModule = {
    setupMMKVInstance: (id: string, mode?: number, cryptKey?: string, path?: string, indexing?: boolean) => boolean;
    setMMKVServiceName: (alias: string, serviceName: string) => string;
    getSecureKey: (alias: string) => string | null;
    setSecureKey: (alias: string, key: string, accessibleMode: string) => boolean;
    secureKeyExists: (alias: string) => boolean;
    removeSecureKey: (alias: string) => boolean;
    setMultiMMKV: (key: string[], value: string[], type: string, id: string) => Promise<boolean | undefined>;
    getMultiMMKV: (keys: string[], id: string) => Promise<string[]>;
    setStringMMKV: (key: string, value: string, id: string) => boolean | undefined;
    getStringMMKV: (key: string, id: string) => string | null | undefined;
    setMapMMKV: (key: string, value: string, id: string) => boolean | undefined;
    getMapMMKV: (key: string, id: string) => string | null | undefined;
    setArrayMMKV: (key: string, value: string, id: string) => boolean | undefined;
    getArrayMMKV: (key: string, id: string) => string | null | undefined;
    setNumberMMKV: (key: string, value: number, id: string) => boolean | undefined;
    getNumberMMKV: (key: string, id: string) => number | null | undefined;
    setBoolMMKV: (key: string, value: boolean, id: string) => boolean | undefined;
    getBoolMMKV: (key: string, id: string) => boolean | null | undefined;
    removeValueMMKV: (key: string, id: string) => boolean | undefined;
    removeValuesMMKV: (...keys: string[]) => boolean | undefined;
    getAllKeysMMKV: (id: string) => string[] | undefined;
    getIndexMMKV: (type: IndexType, id: string) => string[] | undefined;
    containsKeyMMKV: (key: string, id: string) => boolean | undefined;
    clearMMKV: (id: string) => boolean | undefined;
    clearMemoryCache: (id: string) => boolean | undefined;
    encryptMMKV: (cryptKey: string, id: string) => boolean | undefined;
    decryptMMKV: (id: string) => boolean | undefined;
};
//# sourceMappingURL=index.d.ts.map