import type { Transaction } from "../../transactions/index.js";
import type { CallEnv, NamedObject, PassportObject, ProofAddress } from "../common.js";
import type { CallResult } from "./base.js";
import { CallBase } from "./base.js";
import type { GuardSubmissionToFill } from "./guard.js";
export interface CallProof_Data {
    namedNew?: NamedObject;
    description?: string;
    proof: string;
    server_pubkey: string;
    server_signature: string;
    proof_type: number | bigint | string;
    item_count?: number | bigint | string | null;
    about_address?: string | null;
}
export declare class CallProof extends CallBase {
    data: CallProof_Data;
    constructor(data: CallProof_Data);
    call(env: CallEnv): Promise<CallResult>;
    operate(env: CallEnv, tx: Transaction, _passport?: PassportObject, _submission?: GuardSubmissionToFill[]): Promise<void>;
}
export declare function proofFn(name: string): string;
export declare const MAX_PROOF_SIZE = 40480;
export declare const MAX_SERVER_PUBKEY_SIZE = 4096;
export declare const MAX_SERVER_SIGNATURE_SIZE = 4096;
export declare const gen_proof: (env: CallEnv, proof: string, server_pubkey: string, server_signature: string, proof_type: number | bigint | string, description?: string, item_count?: number | bigint | string | null, about_address?: string | null) => Promise<CallResult>;
export declare function create(tx: Transaction, description: string, proof: string, server_pubkey: string, server_signature: string, proof_type: number | bigint | string, item_count?: number | bigint | string | null, about_address?: string | null): ProofAddress;
