import { AgentDisconnectIntegrationDto, type AgentIntegrationStatusResponse, CreateSlackAgentAppDto, type CreateSlackAgentAppResponse, type SlackAgentAppManifestResponse } from '@n8n/api-types';
import type { AuthenticatedRequest } from '@n8n/db';
import type { Request, Response } from 'express';
import { CredentialsService } from '../../credentials/credentials.service';
import { AgentIntegrationPersistenceService } from './agent-integration-persistence.service';
import { AgentPublishService } from './agent-publish.service';
import { AgentRunnableStateService } from './agent-runnable-state.service';
import { ChatIntegrationRegistry } from './integrations/agent-chat-integration';
import { ChatIntegrationService } from './integrations/chat-integration.service';
import { SlackAppSetupService } from './integrations/slack-app-setup.service';
import { AgentRepository } from './repositories/agent.repository';
export declare class AgentIntegrationsController {
    private readonly agentIntegrationPersistenceService;
    private readonly agentPublishService;
    private readonly credentialsService;
    private readonly chatIntegrationService;
    private readonly agentRepository;
    private readonly chatIntegrationRegistry;
    private readonly slackAppSetupService;
    private readonly agentRunnableStateService;
    constructor(agentIntegrationPersistenceService: AgentIntegrationPersistenceService, agentPublishService: AgentPublishService, credentialsService: CredentialsService, chatIntegrationService: ChatIntegrationService, agentRepository: AgentRepository, chatIntegrationRegistry: ChatIntegrationRegistry, slackAppSetupService: SlackAppSetupService, agentRunnableStateService: AgentRunnableStateService);
    private validateIntegration;
    connectIntegration(req: AuthenticatedRequest<{
        projectId: string;
    }>, _res: Response, agentId: string): Promise<{
        status: string;
        agent: import("./entities/agent.entity").Agent & {
            isRunnable: boolean;
            hasPublishHistory: boolean;
        };
    }>;
    createSlackApp(req: AuthenticatedRequest<{
        projectId: string;
    }>, _res: Response, agentId: string, payload: CreateSlackAgentAppDto): Promise<CreateSlackAgentAppResponse>;
    getSlackAppManifest(req: AuthenticatedRequest<{
        projectId: string;
    }>, _res: Response, agentId: string): Promise<SlackAgentAppManifestResponse>;
    handleSlackAppOAuthCallback(req: Request<{
        projectId: string;
        agentId: string;
    }, unknown, unknown, {
        code?: string;
        state?: string;
        error?: string;
        error_description?: string;
    }>, res: Response, agentId: string): Promise<void>;
    disconnectIntegration(req: AuthenticatedRequest<{
        projectId: string;
    }>, _res: Response, agentId: string, payload: AgentDisconnectIntegrationDto): Promise<{
        status: string;
    }>;
    integrationStatus(req: AuthenticatedRequest<{
        projectId: string;
    }>, _res: Response, agentId: string): Promise<AgentIntegrationStatusResponse>;
    handleWebhook(req: Request<{
        projectId: string;
        agentId: string;
        platform: string;
    }>, res: Response): Promise<void>;
}
