/**
 * Form Resolution — the end-to-end path: schemas → derive → graph overrides.
 *
 * `resolveFormDescriptor` is the entry point UIs and tools should use: it
 * finds the schema for an entity type, derives the headless descriptor, and
 * layers any `trellis:Form` override entities on top.
 *
 * @module trellis/forms
 */
import type { SchemaDefinition } from '../core/ontology/types.js';
import type { FormDescriptor, FormEntityLike, FormMode, FormOverride } from './types.js';
export interface ResolveFormOptions {
    /** Derive for one interaction mode (default: `create`). */
    mode?: FormMode;
    /** Graph `Form` override entities (pre-resolved relations). */
    forms?: Array<FormEntityLike | FormOverride>;
    /** Pre-normalized overrides (wins over `forms` for overlapping ids). */
    overrides?: FormOverride[];
}
/**
 * Resolve the headless form descriptor for an entity type.
 *
 * Pure over kernel state — pass the registered schemas (`kernel.listOntologies()`)
 * and any `Form` entities read from the graph. Returns `undefined` when the
 * type has no registered schema.
 */
export declare function resolveFormDescriptor(ontologies: Iterable<SchemaDefinition>, type: string, opts?: ResolveFormOptions): FormDescriptor | undefined;
/** List entity types with registered schemas (form derivable). */
export declare function listFormableTypes(ontologies: Iterable<SchemaDefinition>): Array<{
    entityType: string;
    schemaId: string;
    label: string;
}>;
//# sourceMappingURL=resolve.d.ts.map