///
import BN from 'bn.js';
import { ECPoint, UInt160, UInt256 } from './common';
import { ByteCode, OpCode, SysCallName } from './models/vm';
import { ScriptBuilderParam } from './types';
export declare class ScriptBuilder {
private readonly mutableBuffers;
private readonly pushParamCallbacks;
constructor();
get buffers(): readonly Buffer[];
emitPush(value: Buffer): this;
emitUInt8(value: number): this;
emitUInt16LE(value: number): this;
emitInt16LE(value: number): this;
emitUInt32LE(value: number): this;
emitPushInt(valueIn: number | BN): this;
emitPushUInt160(value: UInt160): this;
emitPushUInt256(value: UInt256): this;
emitPushECPoint(ecPoint: ECPoint): this;
emitPushString(value: string): this;
emitPushBoolean(value: boolean): this;
emitOp(op: OpCode, buffer?: Buffer | undefined): this;
emitPushParam(param: ScriptBuilderParam): this;
emitPushParams(...params: ScriptBuilderParam[]): this;
emitPushArray(params: readonly ScriptBuilderParam[]): this;
emitPushMap(params: ReadonlyMap): this;
emitPushObject(params: {
readonly [key: string]: ScriptBuilderParam;
}): this;
emitAppCallInvocation(operation: string, ...params: ScriptBuilderParam[]): this;
emitAppCallVerification(scriptHash: UInt160): this;
emitAppCall(scriptHash: UInt160, operation: string, ...params: ScriptBuilderParam[]): this;
emitTailCall(scriptHash: UInt160, operation: string, ...params: ScriptBuilderParam[]): this;
emitSysCall(sysCall: SysCallName, ...params: ScriptBuilderParam[]): this;
emitOpByte(byteCode: ByteCode, buffer?: Buffer | undefined): this;
emit(buffer?: Buffer | undefined): this;
build(): Buffer;
}