/**
 * @typedef {import("@helios-lang/uplc").UplcProgramV2} UplcProgramV2
 * @typedef {import("@helios-lang/ir").SourceMappedStringI} SourceMappedStringI
 * @typedef {import("../codegen/index.js").Definitions} Definitions
 * @typedef {import("../typecheck/index.js").DataType} DataType
 * @typedef {import("../typecheck/index.js").ScriptTypes} ScriptTypes
 * @typedef {import("../typecheck/index.js").Type} Type
 * @typedef {import("./EntryPoint.js").EntryPoint} EntryPoint
 */
/**
 * @implements {EntryPoint}
 */
export class DatumRedeemerEntryPoint extends EntryPointImpl implements EntryPoint {
    /**
     * @param {string} purpose
     * @param {ModuleCollection} modules
     */
    constructor(purpose: string, modules: ModuleCollection);
    purpose: string;
    /**
     * @type {DataType}
     */
    get datumType(): import("../typecheck/common.js").DataType;
    /**
     * @type {string}
     */
    get datumTypeName(): string;
    /**
     * @type {Set<string>}
     */
    get requiredParams(): Set<string>;
    /**
     * Used by cli
     * @param {boolean} isTestnet
     * @returns {UplcProgramV2}
     */
    compileDatumCheck(isTestnet: boolean): UplcProgramV2;
    /**
     * @param {ScriptTypes} scriptTypes
     */
    evalTypes(scriptTypes: ScriptTypes): void;
    /**
     * @param {ToIRContext} ctx
     * @param {Definitions | undefined} extra
     * @returns {SourceMappedStringI}
     */
    toIR(ctx: ToIRContext, extra?: Definitions | undefined): SourceMappedStringI;
    /**
     * @protected
     * @param {ToIRContext} ctx
     * @returns {SourceMappedStringI}
     */
    protected toIRInternal(ctx: ToIRContext): SourceMappedStringI;
    /**
     * @internal
     * @param {ToIRContext} ctx
     * @returns {SourceMappedStringI}
     */
    datumCheckToIR(ctx: ToIRContext): SourceMappedStringI;
}
export type UplcProgramV2 = import("@helios-lang/uplc").UplcProgramV2;
export type SourceMappedStringI = import("@helios-lang/ir").SourceMappedStringI;
export type Definitions = import("../codegen/index.js").Definitions;
export type DataType = import("../typecheck/index.js").DataType;
export type ScriptTypes = import("../typecheck/index.js").ScriptTypes;
export type Type = import("../typecheck/index.js").Type;
export type EntryPoint = import("./EntryPoint.js").EntryPoint;
import { EntryPointImpl } from "./EntryPoint.js";
import { ToIRContext } from "../codegen/index.js";
import { ModuleCollection } from "./ModuleCollection.js";
//# sourceMappingURL=DatumRedeemerEntryPoint.d.ts.map