import type { TypeValidation, ValidationRejection } from '@altostra/type-validations';
import type { Auth0Integration, Auth0IntegrationType } from "./Auth0";
import type { LogShippingIntegration, LogShippingIntegrationType } from "./LogShipping";
export * from "./Auth0";
export * from "./LogShipping";
export * from "./Integration";
export * from "./IntegrationId";
export declare type IntegrationType = Auth0IntegrationType | LogShippingIntegrationType;
export declare type IntegrationByType = {
    [K in Auth0IntegrationType]: Auth0Integration;
} & {
    [K in LogShippingIntegrationType]: LogShippingIntegration;
};
export declare type KnownIntegration = IntegrationByType[IntegrationType];
export declare type IntegrationValidationByType = {
    [K in keyof IntegrationByType]: TypeValidation<IntegrationByType[K]>;
};
export declare const integrationValidationByType: IntegrationValidationByType;
export declare function isKnownIntegration(integration: unknown, rejections?: (rejection: ValidationRejection) => unknown): integration is KnownIntegration;
