import type { TezosCoinConfig, TezosContext } from '../config';
import type { OperationContents } from '@taquito/rpc';
export type TransactionFee = {
    fees?: string;
    gasLimit?: string;
    storageLimit?: string;
};
export type TransactionType = 'OUT' | 'DELEGATE' | 'UNDELEGATE' | 'STAKE' | 'UNSTAKE' | 'FINALIZE_UNSTAKE';
export declare function craftTransaction(context: TezosContext, account: {
    address: string;
    counter?: number;
}, transaction: {
    type: 'send' | 'delegate' | 'undelegate' | 'send_token' | 'stake' | 'unstake' | 'finalize_unstake';
    recipient: string;
    amount: bigint;
    fee: TransactionFee;
    contractAddress?: string;
    tokenId?: number;
}, publicKey?: {
    publicKey: string;
    publicKeyHash: string;
}): Promise<{
    type: TransactionType;
    contents: OperationContents[];
}>;
/**
 * Return transaction in raw encoded format (i.e. hexa)
 */
export declare function rawEncode(config: TezosCoinConfig, contents: OperationContents[]): Promise<string>;
//# sourceMappingURL=craftTransaction.d.ts.map