import { integrationScope, type IntegrationAccountConnectionOption, type IntegrationAccountRequirement, type IntegrationScopeRequirement, type ScopeRequirementGroup } from "@automate.ax/catalog/authoring"; export { integrationScope, type IntegrationAccountConnectionOption, type IntegrationAccountRequirement, type IntegrationScopeRequirement, type ScopeRequirementGroup, }; export declare const actionAccountRequirementDefinition: unique symbol; export declare const actionAccountServiceDefinition: unique symbol; export declare const DEFAULT_ACCOUNT_BINDING = "default"; export declare const serializedIntegrationAccountDefinition = "$integrationAccount"; /** Public connection-specific scope declaration for an action account. */ export interface ActionAccountConnectionRequirement { connectionMethodId: string; requiredScope?: IntegrationScopeRequirement; } /** Non-empty connection alternatives accepted for one integration service. */ export interface ActionAccountConnectionRequirements { connections: readonly [ ActionAccountConnectionRequirement, ...ActionAccountConnectionRequirement[] ]; } /** Public shorthand accepted when declaring action account alternatives. */ export type ActionAccountOption = TServiceId | ({ serviceId: TServiceId; } & ({ connections: ActionAccountConnectionRequirements["connections"]; requiredScope?: never; } | { connections?: never; requiredScope?: IntegrationScopeRequirement; })); /** An action whose account requirement can contribute authorization scopes. */ export interface AccountAuthorizationAction { readonly [actionAccountRequirementDefinition]: Record; readonly [actionAccountServiceDefinition]: (serviceId: TServiceId) => void; } export type AccountAuthorizationHint = AccountAuthorizationAction | IntegrationScopeRequirement; /** Reference to a stable project account binding. */ export interface IntegrationAccountReference { readonly [serializedIntegrationAccountDefinition]: { binding: string; serviceId: TServiceId; }; } export interface ResolvedIntegrationAccount { accountId?: string; connectionMethodId: string; secret: Record; serviceId: TServiceId; } /** * Defines the account declaration function for one integration service. * * @param serviceId - Stable integration service identifier. */ export declare function defineAccount(serviceId: TServiceId): (binding?: string, authorizationHints?: AccountAuthorizationHint[]) => IntegrationAccountReference; /** * Determines whether a runtime value is an integration account reference. * * @param value - Materialized action input value to inspect. */ export declare function isIntegrationAccountReference(value: unknown): value is IntegrationAccountReference; //# sourceMappingURL=integrations.d.ts.map