/**
 * Shared helpers for rules that need sample data / seedability
 * analysis. Kept separate from test-case-types.ts so rules can
 * import pure utilities without pulling in the TestStep union.
 */
import type { ModelInfo, AttributeInfo } from '../test-case-types.js';
/**
 * Pick the attribute to use as the entity's human-readable display
 * value in assertions. Preference order:
 *   1. First required business String named 'title'/'name'/'label'
 *   2. First required business String attribute
 *   3. First business String attribute
 *   4. null — caller should skip this rule for this model
 */
export declare function pickDisplayAttribute(model: ModelInfo): AttributeInfo | null;
/**
 * Build a seed-data payload for a model that's plausible enough for
 * the backend to accept. Fills in every required business attribute
 * with a marker-tagged value so contract-test-created entities are
 * easy to identify.
 *
 * Returns null if the model has any required belongsTo relationship —
 * seeding parent entities is out of scope for v1 state-sync rules.
 * Phase 5+ may add a topological-seed helper that handles dependents.
 */
export declare function buildSeedData(model: ModelInfo, marker: string): Record<string, unknown> | null;
/**
 * Extract the list of lifecycle state names from a model's lifecycles
 * block. Returns null if the model has no lifecycle.
 */
export declare function getLifecycleStates(model: ModelInfo): string[] | null;
//# sourceMappingURL=_shared.d.ts.map