import type { SubmittableExtrinsic } from '@polkadot/api/types';
import type { ISubmittableResult } from '@polkadot/types/types';
import type { HexString, MailboxItem } from '../types';
import { GearTransaction } from './Transaction';
export declare class GearMailbox extends GearTransaction {
    /**
     * ## Read mailbox connected with account
     * @param accountId
     * @param numberOfMessages _(default 1000)_ number of messages that will be read from mailbox
     * ```javascript
     * const alice = '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d'
     * const api = await GearApi.create();
     * const mailbox = await api.mailbox.read(alice);
     * console.log(mailbox.map(item => item.toHuman()));
     * ```
     */
    read(accountId: HexString, numberOfMessages?: number): Promise<MailboxItem[]>;
    /**
     * ## Get particular message from mailbox
     * @param accountId
     * @param messageId
     * ```javascript
     * const api = await GearApi.create();
     *
     * const alice = '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d'
     * const messageId = '0xe9f3b99f23203d0c032868d3bd0349c8e243119626a8af98a2f4ac5ea6c78947'
     * const mailbox = await api.mailbox.read(alice, messageId);
     * if (mailbox !== null) {
     *   console.log(mailbox.toHuman());
     * }
     * ```
     */
    read(accountId: HexString, messageId: HexString): Promise<MailboxItem>;
    /**
     * ## Create `claimValue` extrinsic
     * @param messageId MessageId with value to be claimed
     */
    claimValue(messageId: HexString): SubmittableExtrinsic<'promise', ISubmittableResult>;
}
