///
import BN from 'bn.js';
import { Enum, Assignable } from './utils/enums';
import { KeyType, PublicKey } from './utils/key_pair';
import { Signer } from './signer';
export declare class FunctionCallPermission extends Assignable {
allowance?: BN;
receiverId: string;
methodNames: String[];
}
export declare class FullAccessPermission extends Assignable {
}
export declare class AccessKeyPermission extends Enum {
functionCall: FunctionCallPermission;
fullAccess: FullAccessPermission;
}
export declare class AccessKey extends Assignable {
nonce: number;
permission: AccessKeyPermission;
}
export declare function fullAccessKey(): AccessKey;
export declare function functionCallAccessKey(receiverId: string, methodNames: String[], allowance?: BN): AccessKey;
export declare class IAction extends Assignable {
}
declare class CreateAccount extends IAction {
}
declare class DeployContract extends IAction {
code: Uint8Array;
}
declare class FunctionCall extends IAction {
methodName: string;
args: Uint8Array;
gas: BN;
deposit: BN;
}
declare class Transfer extends IAction {
deposit: BN;
}
declare class Stake extends IAction {
stake: BN;
publicKey: PublicKey;
}
declare class AddKey extends IAction {
publicKey: PublicKey;
accessKey: AccessKey;
}
declare class DeleteKey extends IAction {
publicKey: PublicKey;
}
declare class DeleteAccount extends IAction {
beneficiaryId: string;
}
export declare function createAccount(): Action;
export declare function deployContract(code: Uint8Array): Action;
export declare function functionCall(methodName: string, args: Uint8Array, gas: BN, deposit: BN): Action;
export declare function transfer(deposit: BN): Action;
export declare function stake(stake: BN, publicKey: PublicKey): Action;
export declare function addKey(publicKey: PublicKey, accessKey: AccessKey): Action;
export declare function deleteKey(publicKey: PublicKey): Action;
export declare function deleteAccount(beneficiaryId: string): Action;
declare class Signature extends Assignable {
keyType: KeyType;
data: Uint8Array;
}
export declare class Transaction extends Assignable {
signerId: string;
publicKey: PublicKey;
nonce: number;
receiverId: string;
actions: Action[];
blockHash: Uint8Array;
encode(): Uint8Array;
static decode(bytes: Buffer): Transaction;
}
export declare class SignedTransaction extends Assignable {
transaction: Transaction;
signature: Signature;
encode(): Uint8Array;
static decode(bytes: Buffer): SignedTransaction;
}
export declare class Action extends Enum {
createAccount: CreateAccount;
deployContract: DeployContract;
functionCall: FunctionCall;
transfer: Transfer;
stake: Stake;
addKey: AddKey;
deleteKey: DeleteKey;
deleteAccount: DeleteAccount;
}
export declare const SCHEMA: Map;
export declare function createTransaction(signerId: string, publicKey: PublicKey, receiverId: string, nonce: number, actions: Action[], blockHash: Uint8Array): Transaction;
export declare function signTransaction(transaction: Transaction, signer: Signer, accountId?: string, networkId?: string): Promise<[Uint8Array, SignedTransaction]>;
export declare function signTransaction(receiverId: string, nonce: number, actions: Action[], blockHash: Uint8Array, signer: Signer, accountId?: string, networkId?: string): Promise<[Uint8Array, SignedTransaction]>;
export {};