declare function A(this: {
    a: 1;
}): any;
declare function B(this: {
    b: 2;
}): any;
declare function C(this: {
    c: 3;
}): any;
declare function D(this: {
    d: 4;
}): any;
export declare const domain: readonly [typeof A, typeof B, typeof C, typeof D];
declare type ContainerThisTupleType<T extends (ReadonlyArray<Function> | Function[])> = {
    [P in keyof T]: T[P] extends (this: infer R, ...args: unknown[]) => unknown ? R : never;
};
declare type Mapped<T> = {
    [P in keyof T]-?: T[P];
};
declare type UnionToIntersection<U> = (U extends unknown ? (arg: U) => unknown : never) extends ((arg: infer I) => unknown) ? I : never;
declare type ContainerThisType<T extends (ReadonlyArray<Function> | Function[])> = UnionToIntersection<Mapped<ContainerThisTupleType<T>[number]>>;
declare type ThisTypes = ContainerThisType<typeof domain>;
export declare const input: ThisTypes;
export {};
//# sourceMappingURL=typing.d.ts.map