import { DerivationNonce, IAsymmetricKey, IDerivedKey, IKeyDerivationStrategy, IPublicKey, KeyInformation } from './interfaces.js';
import { JWK } from 'jose';
export declare class P256KeyDerivationStrategy implements IKeyDerivationStrategy {
    private algorithmType;
    constructor(algorithmType: 'ECDH' | 'ECDSA');
    hydrate(masterKey: CryptoKey, nonce: DerivationNonce): Promise<IDerivedKey>;
    fromRaw(rawKey: Uint8Array): Promise<P256Key>;
    create(masterKey: CryptoKey, salt: string): Promise<P256Key>;
}
export declare class P256PublicKey implements IPublicKey {
    private cryptoKey;
    constructor(cryptoKey: CryptoKey);
    getPublicKeyHex(): Promise<string>;
    getPublicKeyBytes(): Promise<Uint8Array>;
    verify(signature: Uint8Array, message: Uint8Array): Promise<boolean>;
}
export declare class P256Key implements IAsymmetricKey, IDerivedKey {
    private key;
    private jwk;
    private secret?;
    private derivation_path?;
    constructor(key: CryptoKey, jwk: JWK & Required<Pick<JWK, 'kid'>>, secret?: Uint8Array | undefined, derivation_path?: DerivationNonce | undefined);
    getPublicKeyBytes(): Promise<Uint8Array>;
    getPrivateKeyBytes(): Promise<Uint8Array>;
    toJWK({ includePrivate }: {
        includePrivate: boolean;
    }): Promise<JWK & Required<Pick<JWK, 'kid'>>>;
    toCryptoKey(): Promise<CryptoKey>;
    exportKeyInformation(): Promise<KeyInformation>;
    sign(message: Uint8Array): Promise<Uint8Array>;
    verify(signature: Uint8Array, message: Uint8Array): Promise<boolean>;
    getPath(): DerivationNonce;
    getFingerprint(): Promise<Uint8Array>;
    getPublicKey(): Promise<P256PublicKey>;
}
