import { ConsensusProtocolVersion, VmVersion, AbiVersion } from '../constants.js';
import Node from '../../../Node.js';
export declare const ProtocolToVmAbi: {
    readonly 6: {
        readonly 'contract-create': {
            readonly vmVersion: readonly [VmVersion.Fate3];
            readonly abiVersion: readonly [AbiVersion.Fate];
        };
        readonly 'contract-call': {
            readonly vmVersion: readonly [];
            readonly abiVersion: readonly [AbiVersion.Fate];
        };
        readonly 'oracle-call': {
            readonly vmVersion: readonly [];
            readonly abiVersion: readonly [AbiVersion.NoAbi, AbiVersion.Fate];
        };
    };
};
export interface CtVersion {
    vmVersion: VmVersion;
    abiVersion: AbiVersion;
}
export declare function getProtocolDetails(protocolVersion: ConsensusProtocolVersion, type: 'contract-create' | 'contract-call' | 'oracle-call'): CtVersion;
declare const _default: {
    serialize(value: CtVersion | undefined, params: {}, { consensusProtocolVersion, }: {
        consensusProtocolVersion?: ConsensusProtocolVersion;
    }): Buffer;
    prepare(value: CtVersion | undefined, params: {}, options: {
        consensusProtocolVersion?: ConsensusProtocolVersion;
        onNode?: Node;
    }): Promise<CtVersion | undefined>;
    deserialize(buffer: Buffer): CtVersion;
};
export default _default;
