/** * The on-disk name an object type + caller-supplied name resolves to. * * This lived inside create_d365fo_file as ninety lines of inline cases, which * meant `create` and `modify` disagreed about what an object is called. * `create` turns `{objectType: "table-extension", objectName: "PurchTable"}` * into `PurchTable.CtsoExtension` and writes that file; `modify` given the same * two arguments looked for a file literally named `PurchTable`, missed, and * answered "File not found for table-extension" — one call after `create` had * printed the path. The caller then had to pass `filePath` by hand, three times * in the session that surfaced this. * * Same inputs, same name, one implementation. */ /** * Extension types whose AOT name is `Base.{Token}Extension`. A bare base name * for one of these has to grow the dot before prefixing, or applyObjectPrefix * reads it as a brand-new object and produces `CtsoPurchTable`. */ export declare const DOT_NOTATION_EXTENSION_TYPES: ReadonlySet; /** * Index types a CoC class can extend. Scopes inferExtendedBase's lookups, so a * candidate also spelled by thousands of method/field rows stays a cheap probe. */ export declare const COC_BASE_SYMBOL_TYPES: readonly string[]; /** * The base a `{Base}{Token}{Feature}_Extension` class name extends, for a caller * with no `[ExtensionOf]` to read it from — prepare and validate_object_naming * predict names before any source exists. The writer reads the base from the * attribute; these read it from the index, so all three name the same class. * Undefined for any other shape, or when no known object precedes the token. */ export declare function inferExtendedBase(objectName: string, modelName: string | undefined, isKnownObject: (name: string) => boolean): string | undefined; export declare function isExtensionObjectType(objectType: string): boolean; /** * Normalise `objectName` for `objectType` under the active naming style. * * Idempotent: an already-normalised name comes back unchanged, so callers may * apply it without checking whether someone else already did. * * `onNote` receives a line per transformation, for callers that log them. */ export declare function normalizeObjectName(objectName: string, objectType: string, modelName: string | undefined, onNote?: (note: string) => void, options?: { knownBase?: boolean; extendedBase?: string; }): string; //# sourceMappingURL=objectNaming.d.ts.map