import { InitInput, WasmClient } from "./pkg/rebase_client.js";
export type AttestationStatement = import("./pkg/rebase_client.js").AttestationStatement;
export type AttestationTypes = import("./pkg/rebase_client.js").AttestationTypes;
export type BasicProfileAttestationStatement = import("./pkg/rebase_client.js").BasicProfileAttestationStatement;
export type ClientConfig = import("./pkg/rebase_client.js").Client;
export type CredentialWrapper = import("./pkg/rebase_client.js").CredentialWrapper;
export type DelegatedAttestationConfig = import("./pkg/rebase_client.js").DelegatedAttestationConfig;
export type DelegatedAttestationPreConfig = import("./pkg/rebase_client.js").DelegatedAttestationPreConfig;
export type FlowType = import("./pkg/rebase_client.js").FlowType;
export type Instructions = import("./pkg/rebase_client.js").Instructions;
export type InstructionsReq = import("./pkg/rebase_client.js").InstructionsReq;
export type JWTWrapper = import("./pkg/rebase_client.js").JWTWrapper;
export type Proofs = import("./pkg/rebase_client.js").Proofs;
export type SessionConfig = import("./pkg/rebase_client.js").SessionConfig;
export type StatementResponse = import("./pkg/rebase_client.js").StatementResponse;
export type Statements = import("./pkg/rebase_client.js").Statements;
export type Subjects = import("./pkg/rebase_client.js").Subjects;
export type VCWrapper = import("./pkg/rebase_client.js").VCWrapper;
export type VerifyRes = import("./pkg/rebase_client.js").VerifyRes;
export type LoadOpts = {
    wasm?: InitInput;
    config?: ClientConfig;
};
export declare const defaultClientConfig: () => ClientConfig;
export declare const setWasmInit: (arg: () => InitInput) => void;
export declare class Client {
    private delegated_attestation_config;
    readonly client: WasmClient;
    private constructor();
    static initialize: (options?: LoadOpts) => Promise<Client>;
    set_delegated_attestation_config(config: DelegatedAttestationPreConfig, signature: string): void;
    delegated_attestation_jwt(statement: AttestationStatement): Promise<JWTWrapper>;
    new_jwk(): Promise<string>;
    siwe_message(session_config: SessionConfig, witness: string, delegated_capabilities: Array<AttestationTypes>): Promise<DelegatedAttestationConfig>;
    instructions(type: FlowType): Promise<Instructions>;
    statement(req: Statements): Promise<StatementResponse>;
    witness_jwt(req: Proofs): Promise<JWTWrapper>;
    witness_ld(req: Proofs): Promise<CredentialWrapper>;
    verify(req: VCWrapper): Promise<VerifyRes>;
}
