import { Diagnostic, SourceLocation, createDiagnostic } from "../../types/diagnostic.js";
import type { IrModule, IrPattern, IrInterfaceMember, IrType, IrExpression, IrParameter, IrStatement, IrTypeParameter } from "../types.js";
export type SoundnessValidationResult = {
    readonly ok: boolean;
    readonly diagnostics: readonly Diagnostic[];
};
export type SoundnessGateOptions = {
    readonly knownReferenceTypes?: ReadonlySet<string>;
};
export declare const KNOWN_BUILTINS: Set<string>;
export type ValidationContext = {
    readonly filePath: string;
    readonly namespace: string;
    readonly diagnostics: Diagnostic[];
    readonly localTypeNames: ReadonlySet<string>;
    readonly namespaceLocalTypeNames: ReadonlySet<string>;
    readonly importedTypeNames: ReadonlySet<string>;
    readonly knownReferenceTypes: ReadonlySet<string>;
    readonly typeParameterNames: ReadonlySet<string>;
    readonly activeTypeValidation: WeakSet<object>;
};
export declare const moduleLocation: (ctx: ValidationContext) => SourceLocation;
export declare const getReferenceResolutionCandidates: (name: string) => readonly string[];
export type { Diagnostic, IrExpression, IrInterfaceMember, IrModule, IrParameter, IrPattern, IrStatement, IrType, IrTypeParameter, };
export { createDiagnostic };
//# sourceMappingURL=soundness-gate-shared.d.ts.map