/// <reference types="node" />
import { Buffer } from 'buffer';
import { Disposable } from 'vscode-jsonrpc';
import { SshAlgorithm } from './sshAlgorithm';
export declare abstract class HmacAlgorithm implements SshAlgorithm {
    readonly name: string;
    readonly algorithmName: string;
    readonly keyLength: number;
    readonly digestLength: number;
    protected constructor(name: string, algorithmName: string, keyLength: number, digestLength: number);
    abstract createSigner(key: Buffer): Promise<MessageSigner>;
    abstract createVerifier(key: Buffer): Promise<MessageVerifier>;
}
export interface HmacInfo {
    readonly encryptThenMac?: boolean;
    readonly authenticatedEncryption?: boolean;
}
export interface Signer extends Disposable {
    readonly digestLength: number;
    sign(data: Buffer): Promise<Buffer>;
}
export interface MessageSigner extends Signer, HmacInfo {
}
export interface Verifier extends Disposable {
    readonly digestLength: number;
    verify(data: Buffer, signature: Buffer): Promise<boolean>;
}
export interface MessageVerifier extends Verifier, HmacInfo {
}
//# sourceMappingURL=hmacAlgorithm.d.ts.map