/**
 * Conditional utility type expansion - ReturnType, Parameters, Awaited,
 * ConstructorParameters, InstanceType.
 *
 * DETERMINISTIC IR TYPING (INV-0 compliant):
 * These utility types are expanded using AST-based syntactic algorithms only.
 * No banned APIs (getTypeAtLocation, getTypeOfSymbolAtLocation, typeToTypeNode).
 * Uses Binding for symbol resolution and extracts types from TypeNodes.
 *
 * Split from conditional-utility-types.ts for file-size compliance (< 500 LOC).
 */
import * as ts from "typescript";
import { IrType } from "../../../types.js";
import type { Binding } from "../../../binding/index.js";
/**
 * Expand ReturnType<F> by extracting from function type declaration (INV-0 compliant).
 */
export declare const expandReturnType: (fArg: ts.TypeNode, binding: Binding, convertType: (node: ts.TypeNode, binding: Binding) => IrType) => IrType | null;
/**
 * Expand Parameters<F> by extracting from function type declaration (INV-0 compliant).
 */
export declare const expandParameters: (fArg: ts.TypeNode, binding: Binding, convertType: (node: ts.TypeNode, binding: Binding) => IrType) => IrType | null;
/**
 * Expand Awaited<T> by extracting from Promise type parameter (INV-0 compliant).
 */
export declare const expandAwaited: (tArg: ts.TypeNode, binding: Binding, convertType: (node: ts.TypeNode, binding: Binding) => IrType) => IrType | null;
/**
 * Expand ConstructorParameters<C> by extracting constructor parameter types.
 */
export declare const expandConstructorParameters: (ctorArg: ts.TypeNode, binding: Binding, convertType: (node: ts.TypeNode, binding: Binding) => IrType) => IrType | null;
/**
 * Expand InstanceType<C> by extracting constructor instance result type.
 */
export declare const expandInstanceType: (ctorArg: ts.TypeNode, binding: Binding, convertType: (node: ts.TypeNode, binding: Binding) => IrType) => IrType | null;
//# sourceMappingURL=conditional-utility-types-extract.d.ts.map