import { ComprModeType } from './compr-mode-type';
import { Context } from './context';
import { Exception } from './exception';
import { Instance, LoaderOptions } from './seal';
import { VectorConstructorOptions } from './vector';
export type SecretKeyDependencyOptions = {
    readonly Exception: Exception;
    readonly ComprModeType: ComprModeType;
    readonly Vector: VectorConstructorOptions;
};
export type SecretKeyDependencies = {
    ({ Exception, ComprModeType, Vector }: SecretKeyDependencyOptions): SecretKeyConstructorOptions;
};
export type SecretKeyConstructorOptions = {
    (): SecretKey;
};
export type SecretKey = {
    readonly instance: Instance;
    readonly inject: (instance: Instance) => void;
    readonly delete: () => void;
    readonly save: (compression?: ComprModeType) => string;
    readonly saveArray: (compression?: ComprModeType) => Uint8Array;
    readonly load: (context: Context, encoded: string) => void;
    readonly loadArray: (context: Context, array: Uint8Array) => void;
    readonly copy: (key: SecretKey) => void;
    readonly clone: () => SecretKey;
    readonly move: (key: SecretKey) => void;
};
export declare const SecretKeyInit: ({ loader }: LoaderOptions) => SecretKeyDependencies;
