import * as ts from "typescript";
import type { IrNewExpression, IrType } from "../../../types.js";
import type { ProgramContext } from "../../../program-context.js";
export type SourceBackedConstructorParameterTypes = {
    readonly parameterTypes: readonly (IrType | undefined)[];
    readonly surfaceParameterTypes: readonly (IrType | undefined)[];
    readonly restParameter: {
        readonly index: number;
        readonly arrayType: IrType | undefined;
        readonly elementType: IrType | undefined;
    } | undefined;
};
export declare const buildSourceBackedConstructorParameterTypes: (opts: {
    readonly sourceNode: ts.Node;
    readonly constructorExpression?: ts.Expression;
    readonly callee: IrNewExpression["callee"];
    readonly constructedType: IrType | undefined;
    readonly argumentCount: number;
    readonly actualArgTypes: readonly (IrType | undefined)[];
    readonly ctx: ProgramContext;
}) => SourceBackedConstructorParameterTypes | undefined;
//# sourceMappingURL=source-backed-constructor-metadata.d.ts.map