import { type Optional } from '@ephox/katamari'; import type { AlloySpec } from '../api/component/SpecTypes'; import type { CompositeSketchDetail } from '../api/ui/Sketcher'; interface Replacement { readonly name: () => string; readonly required: () => boolean; readonly used: () => boolean; readonly replace: () => UiSubstitutesAdt; } type ValueThunkFn = (detail: D, spec?: Record, partValidated?: Record) => R; type SingleSubstitution = (required: boolean, valueThunk: ValueThunkFn) => T; type MultipleSubstitution = (required: boolean, valueThunk: ValueThunkFn) => T; export interface UiSubstitutesAdt { fold: (single: SingleSubstitution, multiple: MultipleSubstitution) => T; match: (branches: { single: SingleSubstitution; multiple: MultipleSubstitution; }) => T; log: (label: string) => void; } declare const substituteAll: (owner: Optional, detail: D, components: AlloySpec[], placeholders: Record) => AlloySpec[]; declare const substitutePlaces: (owner: Optional, detail: D, components: AlloySpec[], placeholders: Record) => AlloySpec[]; declare const singleReplace: (detail: D, p: UiSubstitutesAdt) => AlloySpec[]; declare const single: SingleSubstitution; declare const multiple: MultipleSubstitution; declare const placeholder: () => string; export { single, multiple, placeholder, substituteAll, substitutePlaces, singleReplace }; //# sourceMappingURL=UiSubstitutes.d.ts.map