///
import { BinaryWriter, ContractParameterTypeModel, SerializableWire, SerializeWire, UInt160, UInt160Hex } from '@neo-one/client-common';
import { BaseState } from './BaseState';
import { ContractPropertyStateModel } from './ContractPropertyStateModel';
export interface ContractModelAdd {
readonly hash?: UInt160;
readonly version?: number;
readonly script: Buffer;
readonly parameterList: readonly ContractParameterTypeModel[];
readonly returnType: ContractParameterTypeModel;
readonly contractProperties: ContractPropertyStateModel;
readonly name: string;
readonly codeVersion: string;
readonly author: string;
readonly email: string;
readonly description: string;
}
export declare class ContractModel extends BaseState implements SerializableWire {
readonly script: Buffer;
readonly parameterList: readonly ContractParameterTypeModel[];
readonly returnType: ContractParameterTypeModel;
readonly name: string;
readonly codeVersion: string;
readonly author: string;
readonly email: string;
readonly description: string;
readonly contractProperties: ContractPropertyStateModel;
readonly hasStorage: boolean;
readonly hasDynamicInvoke: boolean;
readonly payable: boolean;
readonly serializeWire: SerializeWire;
private readonly hashInternal;
private readonly hashHexInternal;
constructor({ version, script, parameterList, returnType, name, codeVersion, author, email, description, contractProperties, }: ContractModelAdd);
get hash(): UInt160;
get hashHex(): UInt160Hex;
serializeWireBase(writer: BinaryWriter): void;
}
export declare const serializeContractWireBase: ({ writer, contract, publishVersion, }: {
readonly writer: BinaryWriter;
readonly contract: ContractModel;
readonly publishVersion?: number | undefined;
}) => void;