import type { BaseConnector } from '../../connector/BaseConnector.js'; import type { ConnectorRegistry } from '../../registry/connector/definitions.js'; import type { AuthConfig, ConnectorConfig, ConnectorEventListener, ConnectorExecuteParams, ConnectorExecuteResult, ConnectorInstance, ConnectorOperationOptions, CredentialVault, TenantDescriptor, TenantRateLimitConfig } from '../../types/connector/index.js'; import type { ConnectorId, ConnectorInstanceId, CredentialId, TenantId } from '../../types/ids/index.js'; import { type Logger } from '../../utils/logger.js'; import { ConnectorManager } from './lifecycle.js'; export interface TenantConnectorManagerConfig { registry: ConnectorRegistry; credentialVault?: CredentialVault; defaultRateLimit?: TenantRateLimitConfig; /** * A pre-built logger. `registerTenant` already builds a per-tenant CHILD * of `this.log` (bound with `namzu.tenant.id`) and hands it to each * tenant's `ConnectorManager` — this field was the one remaining gap: the * manager's OWN construction-time logger still had no injection point at * all. Falls back to the process logger when absent. */ log?: Logger; } export declare class TenantConnectorManager { private tenants; private registry; private credentialVault; private defaultRateLimit; private listeners; private log; constructor(config: TenantConnectorManagerConfig); registerTenant(descriptor: TenantDescriptor, rateLimit?: TenantRateLimitConfig): void; unregisterTenant(tenantId: TenantId): Promise; getTenant(tenantId: TenantId): TenantDescriptor | undefined; listTenants(): TenantDescriptor[]; setTenantRateLimit(tenantId: TenantId, rateLimit: TenantRateLimitConfig): void; private checkRateLimit; createInstance(tenantId: TenantId, config: ConnectorConfig, connector: BaseConnector): Promise; connect(tenantId: TenantId, instanceId: ConnectorInstanceId): Promise; connectWithCredential(tenantId: TenantId, instanceId: ConnectorInstanceId, credentialId: CredentialId): Promise; storeCredential(tenantId: TenantId, connectorId: ConnectorId, label: string, auth: AuthConfig): Promise; listCredentials(tenantId: TenantId, connectorId?: ConnectorId): Promise; revokeCredential(tenantId: TenantId, credentialId: CredentialId): Promise; disconnect(tenantId: TenantId, instanceId: ConnectorInstanceId): Promise; execute(tenantId: TenantId, params: ConnectorExecuteParams): Promise; healthCheck(tenantId: TenantId, instanceId: ConnectorInstanceId, options?: ConnectorOperationOptions): Promise; removeInstance(tenantId: TenantId, instanceId: ConnectorInstanceId): Promise; listInstances(tenantId: TenantId): ConnectorInstance[]; listConnectedInstances(tenantId: TenantId): ConnectorInstance[]; getManagerForTenant(tenantId: TenantId): ConnectorManager; getCredentialVault(): CredentialVault | undefined; disconnectAll(): Promise; on(listener: ConnectorEventListener): void; off(listener: ConnectorEventListener): void; private emitTenantEvent; private getTenantOrThrow; private requireDefinitionSupportsAuth; } //# sourceMappingURL=tenant.d.ts.map