import type { BindingContext, GlobalSelector, PerTabBindingContext, PerTabSelector } from "../state/selectors/contract.ts"; import type { QuestionnaireState } from "../state/state.ts"; import type { StatefulView } from "./stateful-view.ts"; import type { TabComponents } from "./tab-components.ts"; export interface ComponentBinding

{ readonly component: StatefulView

; readonly select: GlobalSelector

; } export interface PerTabBinding

{ readonly resolve: (tab: TabComponents) => StatefulView

| undefined; readonly select: PerTabSelector

; readonly predicate?: PerTabSelector; } export interface BoundGlobalBinding { apply(state: QuestionnaireState, ctx: BindingContext): void; invalidate(): void; } export interface BoundPerTabBinding { apply(state: QuestionnaireState, ctx: PerTabBindingContext): void; } export declare function globalBinding

(spec: ComponentBinding

): BoundGlobalBinding; export declare function perTabBinding

(spec: PerTabBinding

): BoundPerTabBinding; //# sourceMappingURL=component-binding.d.ts.map