import type { IfcSchemaVersion } from './schema-converter.js'; export interface RetypeArgsResult { tokens: string[]; /** True when the layout was resolved from schema; false ⇒ keyword-only swap. */ resolved: boolean; } /** * Re-lay-out an entity's STEP argument tokens for a new class. * * `argTokens` are already-serialized STEP fragments (as produced by * {@link splitTopLevelArgs}). Returns a fresh token array in the target * class's attribute order. When source or target layout can't be resolved * from the schema (vendor extension, malformed), `resolved` is false and the * caller should fall back to a keyword-only swap. */ export declare function retypeArgTokens(argTokens: string[], sourceType: string, newType: string, predefinedType: string | null | undefined, schema: IfcSchemaVersion): RetypeArgsResult; /** * Rewrite a raw STEP entity line to a new IFC class. * * `entityText` is a single STEP record (`#123=IFCFOO(...);`, possibly with a * trailing newline). Returns the rewritten line, or the original unchanged if * it can't be parsed. * * `schema` is the schema the raw text is in (the source schema). When the * exporter is ALSO converting to a different output schema, the retype runs * first in the source schema and the converter runs after. A narrow edge * follows from that ordering: if the target class gains a `PredefinedType` * slot only in the OUTPUT schema (e.g. IFC2X3 `IfcColumn` → IFC4 `IfcColumn`), * an explicit override has no slot to land in and is dropped. Retyping within * a single schema (the common case) is unaffected. */ export declare function retypeStepLine(entityText: string, sourceType: string, newType: string, predefinedType: string | null | undefined, schema: IfcSchemaVersion): string; //# sourceMappingURL=retype.d.ts.map