import type { AnyTypeValidation, TypeValidation } from '@altostra/type-validations';
import type { IDomainEntity } from "../IDomainEntity";
import type { Name } from "../Name";
import type { OrganizationId } from "../Organization/OrganizationId";
import type { IntegrationId } from "./IntegrationId";
export interface Integration<TType extends string = string, TData = unknown> extends IDomainEntity {
    id: IntegrationId;
    name: Name;
    type: TType;
    organizationId: OrganizationId;
    data: TData;
}
export declare const isIntegration: import("@altostra/type-validations").ObjectOfTypeValidation<{
    name: Name;
    id: IntegrationId;
    organizationId: OrganizationId;
    type: import("@altostra/common/CustomTypes/NonEmptyString").NonEmptyString;
    data: any;
}>;
export declare function createIntegrationValidation<TType extends string, TData>(type: TType, dataValidation: AnyTypeValidation<TData>): TypeValidation<Integration<TType, TData>>;
