import type { WowTransactionBlockResponse } from "../../client/index.js";
import type { TransactionResult } from "../../transactions/index.js";
import { Transaction } from "../../transactions/index.js";
import type { PassportObject, GuardObject, CallEnv } from "../common.js";
import type { GuardSubmissionToFill, GuardTableItem } from "./guard.js";
export declare const MAX_GUARD_COUNT_ONCE = 20;
export interface SubmissionCall {
    type: "submission";
    guard: {
        object: string;
        impack: boolean;
    }[];
    submission: GuardSubmissionToFill[];
}
export declare const verify_guard: (env: CallEnv, guard_info: SubmissionCall) => Promise<WowTransactionBlockResponse>;
export declare const get_guardSubmissions: (env: CallEnv, guards: string[]) => Promise<SubmissionCall>;
export declare function passportFn(name: string): string;
export declare const MAX_GUARD_COUNT = 20;
export declare function newPassport(tx: Transaction): PassportObject;
export declare function freeze(tx: Transaction, passport: PassportObject): void;
export declare function destroy(tx: Transaction, passport: PassportObject): void;
export declare const guardAdd: (tx: Transaction, passport: PassportObject, guard: GuardObject, submission: GuardTableItem[], impack: boolean) => Promise<void>;
export declare function guardClear(tx: Transaction, passport: PassportObject): void;
export declare function verify(tx: Transaction, passport: PassportObject): TransactionResult;
