import SetcodeMultisigWalletContract from './source/SetcodeMultisigWallet';
import { ResultOfProcessMessage, TonClient } from '@tonclient/core';
import { KeyPair } from '@tonclient/core/dist/modules';
import { Contract, ResultOfCall } from 'jton';
export * from './scripts';
export { SetcodeMultisigWalletContract };
export interface DeployIn {
    owners: number[] | string[];
    reqConfirms: number | string;
}
export interface SendTransactionIn {
    dest: string;
    value: number | string;
    bounce: boolean;
    flags: number | string;
    payload: string;
}
export interface SubmitTransactionIn {
    dest: string;
    value: number | string;
    bounce: boolean;
    allBalance: boolean;
    payload: string;
}
export interface SubmitTransactionResult extends ResultOfCall {
    out: SubmitTransactionOut;
}
export interface SubmitTransactionOut extends ResultOfCall {
    transId: string;
}
export interface ConfirmTransactionIn {
    transactionId: number | string;
}
export interface SubmitUpdateIn {
    codeHash: string;
    owners: string[];
    reqConfirms: number | string;
}
export interface SubmitUpdateResult {
    out: SubmitUpdateOut;
}
export interface SubmitUpdateOut {
    updateId: string;
}
export interface ConfirmUpdateIn {
    updateId: number | string;
}
export interface ExecuteUpdateIn {
    updateId: number | string;
    code: string;
}
export interface IsConfirmedIn {
    mask: number | string;
    index: number | string;
}
export interface GetParametersOut {
    maxQueuedTransactions: string;
    maxCustodianCount: string;
    expirationTime: string;
    minValue: string;
    requiredTxnConfirms: string;
}
export interface GetTransactionIn {
    transactionId: number | string;
}
export interface Transaction {
    id: string;
    confirmationsMask: string;
    signsRequired: string;
    signsReceived: string;
    creator: string;
    index: string;
    dest: string;
    value: string;
    sendFlags: string;
    payload: string;
    bounce: boolean;
}
export interface Custodian {
    index: string;
    pubkey: string;
}
export interface UpdateRequest {
    id: string;
    index: string;
    signs: string;
    confirmationsMask: string;
    creator: string;
    codeHash: string;
    custodians: string[];
    reqConfirms: string;
}
export declare class SetcodeMultisigWallet extends Contract {
    static readonly EXTERNAL: {
        acceptTransfer: string;
    };
    constructor(client: TonClient, keys: KeyPair, timeout?: number);
    /**********
     * DEPLOY *
     **********/
    deploy(input: DeployIn, timeout?: number): Promise<ResultOfProcessMessage>;
    /**********
     * PUBLIC *
     **********/
    sendTransaction(input: SendTransactionIn, keys?: KeyPair): Promise<ResultOfCall>;
    submitTransaction(input: SubmitTransactionIn, keys?: KeyPair): Promise<SubmitTransactionResult>;
    confirmTransaction(input: ConfirmTransactionIn, keys?: KeyPair): Promise<ResultOfCall>;
    submitUpdate(input: SubmitUpdateIn, keys?: KeyPair): Promise<SubmitUpdateResult>;
    confirmUpdate(input: ConfirmUpdateIn, keys?: KeyPair): Promise<ResultOfCall>;
    executeUpdate(input: ExecuteUpdateIn, keys?: KeyPair): Promise<ResultOfCall>;
    /***********
     * GETTERS *
     ***********/
    isConfirmed(input: IsConfirmedIn): Promise<boolean>;
    getParameters(): Promise<GetParametersOut>;
    getTransaction(input: GetTransactionIn): Promise<Transaction>;
    getTransactions(): Promise<Transaction[]>;
    getTransactionIds(): Promise<string[]>;
    getCustodians(): Promise<Custodian[]>;
    getUpdateRequests(): Promise<UpdateRequest[]>;
}
//# sourceMappingURL=index.d.ts.map