import { type ShadowingEloquentProperty, type ShadowingPropertyConflict } from './types.js'; /** Case-sensitive intent marker checked against raw file content (issue #222). */ export declare function hasIntentionalShadowMarker(rawContent: string, prop: string): boolean; /** Quoted array keys before `=>` in a PHP array literal segment (casts keys only). */ export declare function parseCastAssociativeArrayKeys(segment: string): string[]; export declare function parseRedeclaredCastsPropertyKeys(source: string): string[] | null; export declare function parseRedeclaredCastsMethodKeys(source: string): string[] | null; /** * Build the `conflicts` entries for a generated model's editable subclass. */ export declare function shadowingPropertyConflicts(baseClass: string, baseArrayValues?: Partial>): ShadowingPropertyConflict[]; /** * Parse a redeclared PHP string array property (first `];` closes the array). * Operates on comment-stripped source so commented-out earlier declarations are ignored. */ export declare function parseRedeclaredStringArray(source: string, prop: string): string[] | null; export declare function formatShadowingDrift(baseValues: readonly string[], childValues: string[] | null): string; export type ShadowingDrift = 'out-of-sync' | 'extra-only' | 'in-sync' | 'unknown'; export type ShadowingConflictResult = { property: ShadowingEloquentProperty; message: string; drift: ShadowingDrift; }; export declare function evaluateShadowingConflicts(existingRaw: string, conflicts: readonly ShadowingPropertyConflict[]): ShadowingConflictResult[];