import { type CompiledContractConfig, Contract, type ContractOptions, type ResultOfCall } from '../../index';
import { type KeyPair } from '@eversdk/core';
type SendTransactionIn = {
    dest: string;
    value: number | string | bigint;
    bounce: boolean;
};
type UpgradeIn = {
    code: string;
};
type GetMessagesOut = {
    messages: Array<{
        hash: string;
        expireAt: string;
    }>;
};
export declare class GiverV3 extends Contract {
    private readonly _call;
    private readonly _run;
    private readonly _payload;
    constructor(config?: CompiledContractConfig, options?: ContractOptions);
    get call(): GiverV3Calls;
    get run(): GiverV3Runs;
    get payload(): GiverV3Payload;
}
declare class GiverV3Calls {
    private readonly contract;
    constructor(contract: Contract);
    sendTransaction(input: SendTransactionIn, keys?: KeyPair): Promise<ResultOfCall>;
    upgrade(input: UpgradeIn, keys?: KeyPair): Promise<ResultOfCall>;
    getMessages(keys?: KeyPair): Promise<ResultOfCall & {
        out: GetMessagesOut;
    }>;
}
declare class GiverV3Runs {
    private readonly contract;
    constructor(contract: Contract);
    getMessages(): Promise<GetMessagesOut>;
}
declare class GiverV3Payload {
    private readonly contract;
    constructor(contract: Contract);
    sendTransaction(input: SendTransactionIn): Promise<string>;
    upgrade(input: UpgradeIn): Promise<string>;
    getMessages(): Promise<string>;
}
export {};
//# sourceMappingURL=index.d.ts.map