import type { components, operations } from '../generated/api.js';
import type { ListParams } from '../core/utils.js';
import { WorkspaceScopedResource } from './base.js';
export type ExternalIntegration = components['schemas']['ExternalIntegrationResponse'];
export type ExternalIntegrationCredential = components['schemas']['ExternalIntegrationCredentialResponse'];
export type ExternalIntegrationCredentialSecret = components['schemas']['ExternalIntegrationCredentialSecretResponse'];
export type CreateExternalIntegrationRequest = components['schemas']['ExternalIntegrationRequest'];
export type UpdateExternalIntegrationRequest = components['schemas']['ExternalIntegrationUpdateRequest'];
export type CreateExternalIntegrationCredentialRequest = components['schemas']['ExternalIntegrationCredentialRequest'];
export type ExternalIntegrationListResponse = components['schemas']['PaginatedResponse_ExternalIntegrationResponse_'];
export type ListExternalIntegrationsParams = ListParams & NonNullable<operations['list-external-integrations']['parameters']['query']>;
/**
 * Manage external integrations that can own constrained client credentials for
 * customer backends.
 */
export declare class ExternalIntegrationsResource extends WorkspaceScopedResource {
    /** List external integrations in the workspace. */
    list(params?: ListExternalIntegrationsParams): Promise<ExternalIntegrationListResponse>;
    listAutoPaging(params?: ListExternalIntegrationsParams): AsyncGenerator<{
        created_at?: string | null;
        created_by_credential_id?: string | null;
        created_by_entity_id: string;
        description?: string | null;
        display_name: components["schemas"]["NameString"];
        id: string;
        is_active: boolean;
        name: string;
        updated_at?: string | null;
        workspace_id: string;
    }, any, any>;
    /** Register a customer/backend integration record. */
    create(body: CreateExternalIntegrationRequest): Promise<ExternalIntegration>;
    /** Get one external integration. */
    get(integrationId: string): Promise<ExternalIntegration>;
    /** Update external integration metadata. */
    update(integrationId: string, body: UpdateExternalIntegrationRequest): Promise<ExternalIntegration>;
    /** Delete an external integration and revoke its active credentials. */
    delete(integrationId: string): Promise<void>;
    /** List credentials for an external integration. Plaintext secrets are never returned here. */
    listCredentials(integrationId: string): Promise<ExternalIntegrationCredential[]>;
    /** Create a credential and return its one-time plaintext client secret. */
    createCredential(integrationId: string, body: CreateExternalIntegrationCredentialRequest): Promise<ExternalIntegrationCredentialSecret>;
    /** Revoke one external integration credential. */
    revokeCredential(integrationId: string, credentialId: string): Promise<void>;
    /** Rotate a credential and return the replacement one-time plaintext client secret. */
    rotateCredential(integrationId: string, credentialId: string): Promise<ExternalIntegrationCredentialSecret>;
}
//# sourceMappingURL=external-integrations.d.ts.map