import type { DataSurfaceColumnRole, DataSurfaceDescriptor } from '@happyvertical/smrt-ui/data'; import type { ResolvedObjectFieldPolicy } from './types.js'; /** Optional host metadata for columns that do not come from a model field. */ export interface FieldPolicyDataSurfaceOptions { /** Map domain column ids to manifest field names without changing column ids. */ fieldNameByColumnId?: Readonly>; /** Static visibility is a host constraint and can only be narrowed. */ staticHiddenColumnIds?: readonly string[]; /** Structural roles are always retained when policy filters data columns. */ roleByColumnId?: Readonly>; /** Explicit host authorization for otherwise restricted column ids. */ authorizedColumnIds?: readonly string[]; } /** * Apply an effective field policy to a mounted DataSurface descriptor. * * This adapter is deliberately outside smrt-ui: the UI contract remains * domain-neutral while fields owns the policy-to-surface semantics. Static * host constraints and policy restrictions only remove capabilities; they * never reveal a field or rename a domain column id. */ export declare function policyToDataSurfaceDescriptor(policy: ResolvedObjectFieldPolicy, descriptor: DataSurfaceDescriptor, options?: FieldPolicyDataSurfaceOptions): DataSurfaceDescriptor; /** Descriptive alias for hosts that treat policy application as a transform. */ export declare const applyFieldPolicyToDataSurface: typeof policyToDataSurfaceDescriptor; //# sourceMappingURL=data-surface.d.ts.map