declare enum CipherType {
    Aes256Gcm64 = 0,
    Aes256Gcm96 = 1,
    Aes256Gcm104 = 2,
    Aes256Gcm112 = 3,
    Aes256Gcm120 = 4,
    Aes256Gcm128 = 5
}
/**
 * The Signature ECC Mode is used to determine the length of the signature at the end of a nanotdf. This, in
 * combination with the previous HAS_SIGNATURE section, describe the signature of the nanotdf. The following table
 * describes the valid values and the associated ECC Params.
 */
declare enum CurveName {
    Secp256R1 = 0,
    Secp384R1 = 1,
    Secp521R1 = 2
}
export declare enum ResourceLocatorProtocol {
    Http = 0,
    Https = 1,
    Unreserverd = 2,
    SharedResourceDirectory = 255
}
export declare enum PolicyType {
    Remote = 0,
    EmbeddedText = 1,
    EmbeddedEncrypted = 2,
    EmbeddedEncryptedPKA = 3
}
/**
 * Resource Locator interface
 */
export interface ResourceLocator {
    protocol: ResourceLocatorProtocol;
    length: number;
    body: string;
}
/**
 * Policy interface
 */
export interface Policy {
    type: PolicyType;
    binding: Uint8Array;
}
/**
 * Remote policy interface
 */
export interface RemotePolicy extends Policy {
    protocol: ResourceLocatorProtocol;
    urn: string;
}
/**
 * Embedded policy interface
 */
export interface EmbeddedPolicy extends Policy {
    content: Uint8Array;
}
/**
 * Header interface
 */
export interface Header {
    magicNumberVersion: Uint8Array;
    kas: ResourceLocator;
    useECDSABinding: boolean;
    ephemeralCurveName: CurveName;
    hasSignature: boolean;
    signatureCurveName: CurveName;
    symmetricCipher: CipherType;
    authTagLength: number;
    policy: RemotePolicy | EmbeddedPolicy;
    ephemeralPublicKey: Uint8Array;
}
/**
 * Payload interface
 */
export interface Payload {
    iv: Uint8Array;
    ciphertext: Uint8Array;
    authTag: Uint8Array;
    ciphertextAuthTag: Uint8Array;
}
/**
 * Signature interface
 */
export interface Signature {
    publicKey: Uint8Array;
    signature: Uint8Array;
}
/**
 * NanoTDF interface
 */
export interface NanoTDF {
    header: Header;
    payload: Payload;
    signature: Signature;
}
export {};
//# sourceMappingURL=NanoTDF.d.ts.map