import type { Transaction } from "../../transactions/Transaction.js";
import type { CallEnv, PassportObject } from "../common.js";
import type { AccountOrMark_Address, ManyAccountOrMark_Address } from "../local/index.js";
import type { CallResult } from "./base.js";
import { CallBase } from "./base.js";
import type { RecordsInEntity } from "./entity.js";
import type { GuardSubmissionToFill } from "./guard.js";
export interface CallPersonal_Data {
    description?: string;
    referrer?: AccountOrMark_Address | null;
    information?: {
        op: "add";
        data: RecordsInEntity[];
    } | {
        op: "remove";
        name: string[];
    } | {
        op: "clear";
    };
    mark?: {
        op: "add";
        data: {
            address: AccountOrMark_Address;
            name?: string;
            tags?: string[];
        }[];
    } | {
        op: "remove";
        data: {
            address: AccountOrMark_Address;
            tags?: string[];
        }[];
    } | {
        op: "clear";
        address: ManyAccountOrMark_Address;
    } | {
        op: "transfer";
        to: AccountOrMark_Address;
    } | {
        op: "replace";
        new_mark_object: string;
    } | {
        op: "destroy";
    };
}
export declare class CallPersonal extends CallBase {
    data: CallPersonal_Data;
    constructor(data: CallPersonal_Data);
    call(env: CallEnv): Promise<CallResult>;
    operate(env: CallEnv, tx: Transaction, _passport?: PassportObject, _submission?: GuardSubmissionToFill[]): Promise<void>;
}
