/**
 * @license
 * Copyright 2020 Google LLC
 * SPDX-License-Identifier: Apache-2.0
 */
import * as KeyManager from '../internal/key_manager';
import { PbAesCtrKeyFormat, PbAesCtrParams, PbHmacKeyFormat, PbHmacParams, PbKeyData, PbMessage } from '../internal/proto';
import { Constructor } from '../internal/util';
import { Aead } from './internal/aead';
/**
 * @final
 */
declare class AesCtrHmacAeadKeyFactory implements KeyManager.KeyFactory {
    private static readonly VERSION;
    private static readonly MIN_KEY_SIZE;
    private static readonly MIN_IV_SIZE;
    private static readonly MAX_IV_SIZE;
    private static readonly MIN_TAG_SIZE;
    private static readonly MAX_TAG_SIZE;
    /**
     */
    newKey(keyFormat: PbMessage | Uint8Array): any;
    /**
     */
    newKeyData(serializedKeyFormat: Uint8Array): any;
    /**
     * Checks the parameters and size of a given keyFormat.
     *
     */
    validateAesCtrKeyFormat(keyFormat: undefined | null | PbAesCtrKeyFormat): {
        aesCtrParams: PbAesCtrParams;
        aesCtrKeySize: number;
        ivSize: number;
    };
    /**
     * Checks the parameters and size of a given keyFormat.
     *
     */
    validateHmacKeyFormat(keyFormat: undefined | null | PbHmacKeyFormat): {
        hmacParams: PbHmacParams;
        hmacKeySize: number;
        hashType: string;
        tagSize: number;
    };
}
/**
 * @final
 */
export declare class AesCtrHmacAeadKeyManager implements KeyManager.KeyManager<Aead> {
    private static readonly SUPPORTED_PRIMITIVE;
    static KEY_TYPE: string;
    private static readonly VERSION;
    private readonly keyFactory;
    /**
     */
    getPrimitive(primitiveType: Constructor<Aead>, key: PbKeyData | PbMessage): Promise<import("tink_javascript/subtle/encrypt_then_authenticate").EncryptThenAuthenticate>;
    /**
     */
    doesSupport(keyType: string): boolean;
    /**
     */
    getKeyType(): string;
    /**
     */
    getPrimitiveType(): typeof Aead;
    /**
     */
    getVersion(): number;
    /**
     */
    getKeyFactory(): AesCtrHmacAeadKeyFactory;
    /**
     * Checks the parameters and size of a given AES-CTR key.
     *
     */
    private validateAesCtrKey;
    /**
     * Checks the parameters and size of a given HMAC key.
     *
     */
    private validateHmacKey;
    static register(): void;
}
export {};
