/**
 * Utility Type Mapped Helpers — Partial/Required/Readonly/Pick/Omit expansion
 *
 * Implements mapped utility types that transform object type members:
 * - Partial/Required/Readonly: T must be object-like
 * - Pick/Omit: K must be string literal union (finite keys)
 *
 * DAG position: depends on type-system-state + type-system-relations
 */
import type { IrType, IrInterfaceMember, IrReferenceType } from "../types/index.js";
import type { UtilityTypeName } from "./types.js";
import type { TypeSystemState, Site } from "./type-system-state.js";
export declare const expandUtility: (state: TypeSystemState, name: UtilityTypeName, args: readonly IrType[], site?: Site) => IrType;
/**
 * Expand Partial/Required/Readonly<T>: Mapped type transformation
 */
export declare const expandMappedUtility: (state: TypeSystemState, type: IrType, mode: "optional" | "required" | "readonly", site?: Site) => IrType;
/**
 * Transform members for Partial/Required/Readonly
 */
export declare const transformMembers: (members: readonly IrInterfaceMember[], mode: "optional" | "required" | "readonly") => IrInterfaceMember[];
/**
 * Get structural members for a reference type
 */
export declare const getStructuralMembersForType: (state: TypeSystemState, type: IrReferenceType) => readonly IrInterfaceMember[];
/**
 * Expand Pick/Omit<T, K>: Filter members by keys
 */
export declare const expandPickOmitUtility: (state: TypeSystemState, type: IrType, keysType: IrType, isPick: boolean, site?: Site) => IrType;
/**
 * Extract literal keys from a type (string literals or union of string literals)
 */
export declare const extractLiteralKeys: (type: IrType) => Set<string> | null;
//# sourceMappingURL=utility-type-mapped-helpers.d.ts.map