import type { SourceData } from '../../../../../../components/PipelineForm/PipelineForm.types'; import type { Schemas } from '../../../../../../components/PipelineForm/components/DatasetForm/DatasetForm.types'; import type { getSourceSchema } from '../../../../../../components/PipelineForm/schemas'; import type { SourcesPanelProgressItem } from '../../../../../../components/SourcesPanel'; type SourceSchema = ReturnType; export interface SourceProgressLabels { details: string; config: string; dataset: string; } export interface SourceCompleteness { /** Source details (name + type) valid. */ detailsDone: boolean; /** Source configured and tested successfully (`isSourceTested`). */ configDone: boolean; /** The paired dataset has at least one table selected. */ datasetDone: boolean; } /** * Per-source completeness for the first three progress segments. The config * segment tracks `isSourceTested` — set only on a successful "Test source" and * cleared by `useFormSideEffects` whenever any source field changes, so it * faithfully means "configured and tested, unmodified since". (A plain * schema-valid check isn't enough: testing sets `isSourceTested` but not the * separate secrets `isValidated` flag, so the section would never read valid.) */ export declare const getSourceCompleteness: (source: SourceData, datasetSchemas: Schemas | undefined, sourceSchema: SourceSchema) => SourceCompleteness; export interface GetSourceProgressArgs { completeness: SourceCompleteness; labels: SourceProgressLabels; } /** * Builds the per-source progress segments shown as dashes on the rail card. The * three segments map to the per-source wizard journey: source details (name + * type), source config, and data selection. Transformations is a pipeline-level * step (no sidebar) and is not represented here. */ export declare const getSourceProgress: ({ completeness, labels }: GetSourceProgressArgs) => SourcesPanelProgressItem[]; export {};