import type { CatalogEntry } from '../spec/engine-catalog.js';
import type { WorkspaceSpec } from '../spec/workspace-spec.js';
import type { ClassifiedColumn } from '../profiler/roles.js';
export type ShapeSpecResult = {
    ok: true;
    spec: WorkspaceSpec;
} | {
    ok: false;
    code: 'missing_binds';
    reason: string;
};
/** Bind catalog data roles to columns. One field fills one role. */
export declare function shapeSpec(base: WorkspaceSpec, entry: CatalogEntry | undefined, fields: readonly string[] | undefined, classified?: readonly ClassifiedColumn[]): ShapeSpecResult;
