import { Signer } from "./Signer";
import { Verifier } from "./Verifier";
import { DeriveSecret } from "./DeriveSecret";
export interface LdKeyPairStatic {
    generate: (options: any) => Promise<any>;
    fromFingerprint({ fingerprint }: {
        fingerprint: string;
    }): Promise<any>;
    from(serialized: any): Promise<any>;
}
export interface LdKeyPairInstance {
    fingerprint(): Promise<string>;
    export({ type, privateKey }: {
        type: any;
        privateKey?: boolean;
    }): Promise<any>;
    signer?: Signer;
    verifier?: Verifier;
    deriveSecret?: DeriveSecret;
    getDerivedKeyPairs?: () => Promise<any[]>;
    getPairedKeyPairs?: () => Promise<any[]>;
}
export declare function staticImplements<T>(): <U extends T>(constructor: U) => void;
