import { Maybe } from "../../utils/maybe";
import { Address, Builder, Cell, MessageRelaxed, SendMode, StateInit, Slice } from "@ton/core";
import { SendArgsSignable, SendArgsSigned } from "../signing/singer";
export type WalletV4ExtendedSendArgs = {
    seqno: number;
    timeout?: Maybe<number>;
};
export interface OutActionSendMsg {
    type: 'sendMsg';
    messages: MessageRelaxed[];
    sendMode?: Maybe<SendMode>;
}
export interface OutActionAddAndDeployPlugin {
    type: 'addAndDeployPlugin';
    workchain: number;
    stateInit: StateInit;
    body: Cell;
    forwardAmount: bigint;
}
export interface OutActionAddPlugin {
    type: 'addPlugin';
    address: Address;
    forwardAmount: bigint;
    queryId?: bigint;
}
export interface OutActionRemovePlugin {
    type: 'removePlugin';
    address: Address;
    forwardAmount: bigint;
    queryId?: bigint;
}
export type OutActionWalletV4 = OutActionSendMsg | OutActionAddAndDeployPlugin | OutActionAddPlugin | OutActionRemovePlugin;
export type WalletV4SendArgsSigned = WalletV4ExtendedSendArgs & SendArgsSigned;
export type WalletV4SendArgsSignable = WalletV4ExtendedSendArgs & SendArgsSignable;
export type WalletV4SendArgs = WalletV4SendArgsSigned | WalletV4SendArgsSignable;
export declare function storeExtendedAction(action: OutActionWalletV4): (builder: Builder) => void;
export declare function loadExtendedAction(slice: Slice): OutActionWalletV4;
