import type { UnionToIntersection } from "./utils";
export type CustomerActivatedConnectionConfigVar = {
    dataType: "connection";
    stableKey: string;
};
export type OrganizationActivatedConnectionConfigVar = {
    dataType: "connection";
    stableKey: string;
};
export type ScopedConfigVar = CustomerActivatedConnectionConfigVar | OrganizationActivatedConnectionConfigVar;
/**
 * Root ScopedConfigVars type exposed for augmentation.
 *
 * The expected interface when augmenting is:
 *
 * ```ts
 * interface IntegrationDefinitionScopedConfigVars {
 *   [key: string]: OrganizationActivatedConnectionConfigVar
 * }
 * ```
 *
 */
export interface IntegrationDefinitionScopedConfigVars {
}
type CreateScopedConfigVars<TScopedConfigVarMap> = keyof TScopedConfigVarMap extends never ? {
    [key: string]: OrganizationActivatedConnectionConfigVar | string;
} : UnionToIntersection<keyof TScopedConfigVarMap extends infer TScopedConfigVarName ? TScopedConfigVarName extends keyof TScopedConfigVarMap ? TScopedConfigVarMap[TScopedConfigVarName] extends OrganizationActivatedConnectionConfigVar ? {
    [Key in TScopedConfigVarName]: TScopedConfigVarMap[TScopedConfigVarName];
} : never : never : never>;
export type ScopedConfigVarMap = CreateScopedConfigVars<IntegrationDefinitionScopedConfigVars>;
export declare const isConnectionScopedConfigVar: (cv: unknown) => cv is OrganizationActivatedConnectionConfigVar;
export {};
