/**
 * @returns {NamedNamespace}
 */
export function Cip67Namespace(): NamedNamespace;
/**
 * @param {MultiValidatorInfo} info
 * @returns {NamedNamespace}
 */
export function ScriptContextNamespace(info: MultiValidatorInfo): NamedNamespace;
/**
 * @typedef {import("@helios-lang/compiler-utils").Site} Site
 * @typedef {import("./common.js").InferenceMap} InferenceMap
 * @typedef {import("./common.js").DataType} DataType
 * @typedef {import("./common.js").EnumMemberType} EnumMemberType
 * @typedef {import("./common.js").Named} Named
 * @typedef {import("./common.js").Type} Type
 * @typedef {import("./common.js").Typed} Typed
 * @typedef {import("./common.js").InstanceMembers} InstanceMembers
 * @typedef {import("./common.js").TypeMembers} TypeMembers
 * @typedef {import("./common.js").TypeSchema} TypeSchema
 */
/**
 * Buitin Address type
 * @type {DataType}
 */
export const AddressType: DataType;
/**
 * @type {DataType}
 */
export const DCertType: DataType;
/**
 * Builtin Credential type
 * @type {DataType}
 */
export const SpendingCredentialType: DataType;
/**
 * @type {DataType}
 */
export const TxOutputDatumType: DataType;
/**
 * Base class for ScriptContext, ContractContext, Scripts and other "macro"-types
 */
export class MacroType extends Common {
    /**
     * @type {string[]}
     */
    get fieldNames(): string[];
    /**
     * @type {InstanceMembers}
     */
    get instanceMembers(): import("./common.js").InstanceMembers;
    /**
     * @type {string}
     */
    get name(): string;
    /**
     * @type {string}
     */
    get path(): string;
    /**
     * @type {TypeMembers}
     */
    get typeMembers(): import("./common.js").TypeMembers;
    /**
     * @type {DataType}
     */
    get asDataType(): import("./common.js").DataType;
    /**
     * @type {Named}
     */
    get asNamed(): import("./common.js").Named;
    /**
     * @type {Type}
     */
    get asType(): import("./common.js").Type;
    /**
     * @param {Set<string>} parents
     * @returns {TypeSchema}
     */
    toSchema(parents?: Set<string>): TypeSchema;
    /**
     * @param {Site} site
     * @param {InferenceMap} map
     * @param {null | Type} type
     * @returns {Type}
     */
    infer(site: Site, map: InferenceMap, type: null | Type): Type;
    /**
     * @param {Type} other
     * @returns {boolean}
     */
    isBaseOf(other: Type): boolean;
    /**
     * @returns {Typed}
     */
    toTyped(): Typed;
}
/**
 * @typedef {{[name: string]: ScriptHashType}} ScriptTypes
 */
/**
 * @typedef {{
 *   currentScript: string
 *   scriptTypes?: ScriptTypes
 * }} MultiValidatorInfo
 */
/**
 * @implements {DataType}
 */
export class ScriptsType extends MacroType implements DataType {
    /**
     * @param {ScriptTypes} scripts
     */
    constructor(scripts: ScriptTypes);
    /**
     * @private
     * @readonly
     * @type {{[name: string]: Typed}}
     */
    private readonly _scripts;
    /**
     * @returns {boolean}
     */
    isEmpty(): boolean;
}
/**
 * Builtin ScriptPurpose type (Minting| Spending| Rewarding | Certifying)
 * @type {DataType}
 */
export const ScriptPurposeType: DataType;
/**
 * Builtin StakingCredential type
 * @type {DataType}
 */
export const StakingCredentialType: DataType;
/**
 * Builtin StakingPurpose type (Rewarding or Certifying)
 * @type {DataType}
 */
export const StakingPurposeType: DataType;
/**
 * Builtin Tx type
 * @type {DataType}
 */
export const TxType: DataType;
/**
 * Builtin TxId type
 * @type {DataType}
 */
export const TxIdType: DataType;
/**
 * Builtin TxInput type
 * @type {DataType}
 */
export const TxInputType: DataType;
/**
 * Builtin TxOutput type
 * @type {DataType}
 */
export const TxOutputType: DataType;
/**
 * Builtin TxOutputId type
 * @type {DataType}
 */
export const TxOutputIdType: DataType;
export const MixedArgsType: any;
export type Site = import("@helios-lang/compiler-utils").Site;
export type InferenceMap = import("./common.js").InferenceMap;
export type DataType = import("./common.js").DataType;
export type EnumMemberType = import("./common.js").EnumMemberType;
export type Named = import("./common.js").Named;
export type Type = import("./common.js").Type;
export type Typed = import("./common.js").Typed;
export type InstanceMembers = import("./common.js").InstanceMembers;
export type TypeMembers = import("./common.js").TypeMembers;
export type TypeSchema = import("./common.js").TypeSchema;
export type ScriptTypes = {
    [name: string]: ScriptHashType;
};
export type MultiValidatorInfo = {
    currentScript: string;
    scriptTypes?: ScriptTypes;
};
import { NamedNamespace } from "./common.js";
import { Common } from "./common.js";
import { ScriptHashType } from "./hashes.js";
//# sourceMappingURL=tx.d.ts.map