import { KeyType } from "../../crypto";
import { SdkError } from "../../errors";
export declare class SecretKey {
    pubKeyId: string;
    pubKeyHex: string;
    type: KeyType;
    key: string;
}
export declare class ClaimMetaBase {
    type: string;
    constructor(type: string);
}
export declare class ClaimPrivateDataBase {
    extensionField: string;
    isEmpty(): boolean;
    genHashList(): string[];
    genHash(inHashList?: string[] | null): string;
    toString(): string;
    encrypt(key: string): string;
    decrypt(cipherText: string, key: string): any;
}
export declare class ClaimPublicDataBase {
    extensionField: string;
}
export declare class Claim {
    meta: any;
    publicData: any;
    privateData: any;
    privateHash: string;
    privateCipherText: string;
    type(): string;
    validateBasic(): SdkError | null;
    newPrivateData(): ClaimPrivateDataBase;
    newPublicData(): ClaimPublicDataBase;
    newMetaData(): ClaimMetaBase;
    parseFrom(objStr: string): Object;
    genPrivateHash(): void;
    preparePrivateHash(): void;
    privateDataEncrypt(key: string): SdkError | null;
    privateDataDecrypt(cipherText: string, key: string): SdkError | null;
    removePrivateCipher(): void;
    removePrivateHash(): void;
    removePrivateData(): void;
    setPublicExtensionField(field: string): void;
    setPrivateExtensionField(fieldValue: string): void;
    genDisclosureData(disclosureFields?: string[]): DisclosedData;
    verifyDisclosureData(disclosurePrivateData: DisclosedData): boolean;
    genHashFromDisclosureData(disclosedData: DisclosedData): string;
    preparePrivateHashFromDiscloseData(disclosedData: DisclosedData): void;
}
export declare class DisclosedData {
    type: string;
    disclosedField: ClaimPrivateDataBase;
    undisclosedHash: string[];
    constructor(type: string);
}
export declare class DisclosurePrivateData extends ClaimPrivateDataBase {
    claims: DisclosedData[];
}
