import type { CallbackCredentialHolderInterface, IdentityAssertionBuilderInterface, IdentityAssertionSignerInterface, NeonCallbackCredentialHolderHandle, NeonIdentityAssertionSignerHandle, NeonIdentityAssertionBuilderHandle, SignerPayload, NeonCallbackSignerHandle } from "./types.d.ts";
export declare class IdentityAssertionBuilder implements IdentityAssertionBuilderInterface {
    private _builder;
    constructor(_builder: NeonIdentityAssertionBuilderHandle);
    static identityBuilderForCredentialHolder(credentialHolder: CallbackCredentialHolderInterface): Promise<IdentityAssertionBuilder>;
    addReferencedAssertions(referencedAssertions: string[]): void;
    addRoles(roles: string[]): void;
    builder(): NeonIdentityAssertionBuilderHandle;
}
export declare class IdentityAssertionSigner implements IdentityAssertionSignerInterface {
    private _signer;
    constructor(_signer: NeonIdentityAssertionSignerHandle);
    static new(signer: NeonCallbackSignerHandle): IdentityAssertionSigner;
    addIdentityAssertion(identityAssertionBuilder: IdentityAssertionBuilder): void;
    getHandle(): NeonIdentityAssertionSignerHandle;
}
export declare class CallbackCredentialHolder implements CallbackCredentialHolderInterface {
    private callbackCredentialHolder;
    constructor(callbackCredentialHolder: NeonCallbackCredentialHolderHandle);
    getHandle(): NeonCallbackCredentialHolderHandle;
    static newCallbackCredentialHolder(reserveSize: number, sigType: string, callback: (signerPayload: SignerPayload) => Promise<Buffer>): CallbackCredentialHolder;
    sign(payload: SignerPayload): Promise<Buffer>;
    reserveSize(): number;
    sigType(): string;
}
