import { type Abort } from "../__internal/Abort.js"; import { type Raw_Optional_Value } from "../__internal/Raw_Optional_Value.js"; import { type Iterator } from "./__internal/refiner/Iterator.js"; import * as p_di from "../schema.js"; export type Refiner = ($: Input, abort: Abort) => Result; export type Refiner_With_Parameter = ($: Input, abort: Abort, $p: Parameter) => Result; export type Refiner_With_Lookups_And_Parameter = (context: Input, abort: Abort, lookups: Lookups, parameters: Parameter) => Result; export type Refiner_Without_Error = ($: Input) => Result; export type Refiner_Without_Error_With_Parameter = ($: Input, $p: Parameter) => Result; export type Production = (iterator: Iterator, abort: Abort) => Result; export type Production_With_Parameter = (iterator: Iterator, abort: Abort, $p: Parameter) => Result; export type Production_Without_Error = (iterator: Iterator) => Result; export type Production_Without_Error_With_Parameter = (iterator: Iterator, $p: Parameter) => Result; export declare namespace lookup { namespace guaranteed { type Acyclic = { get_entry: (id: string, abort: { no_such_entry: Abort; no_context_lookup: Abort; cycle_detected: Abort>; }) => Type; __get_entry_raw: (id: string, abort: { no_context_lookup: Abort; cycle_detected: Abort>; }) => Raw_Optional_Value; }; type Cyclic = { get_entry: (id: string, abort: { no_such_entry: Abort; no_context_lookup: Abort; accessing_cyclic_sibling_before_it_is_resolved: Abort; }) => p_di.Circular_Dependency; }; } namespace possible { type Acyclic = { map: (if_set: (lookup: guaranteed.Acyclic) => Result, if_not_set: () => Result) => Result; }; type Cyclic = { map: (if_set: (lookup: guaranteed.Cyclic) => Result, if_not_set: () => Result) => Result; }; } }