import { AgentIntegrationConfig } from '@n8n/api-types';
import { Logger } from '@n8n/backend-common';
import type { Thread, Author } from 'chat';
import { InstanceSettings } from 'n8n-core';
import { UrlService } from '../../../../services/url.service';
import { AgentRepository } from '../../repositories/agent.repository';
import { AgentChatIntegration, type AgentChatIntegrationContext } from '../agent-chat-integration';
import type { SuspendComponent } from '../component-mapper';
import type { IntegrationAction } from '../integration-tools';
export declare class TelegramIntegration extends AgentChatIntegration {
    private readonly logger;
    private readonly urlService;
    private readonly agentRepository;
    private readonly instanceSettings;
    readonly type = "telegram";
    readonly credentialTypes: string[];
    readonly displayLabel = "Telegram";
    readonly displayIcon = "telegram";
    readonly builderGuidance: {
        capabilities: string[];
        useIntegrationWhen: string[];
        useNodeToolWhen: string[];
    };
    readonly supportedComponents: string[];
    readonly actions: IntegrationAction[];
    readonly needsShortCallbackData = true;
    readonly disableStreaming = true;
    readonly formatThreadId: {
        fromSdk: (thread: Thread<unknown, unknown>) => string;
        toSdk: (threadId: string) => string;
    };
    constructor(logger: Logger, urlService: UrlService, agentRepository: AgentRepository, instanceSettings: InstanceSettings);
    createAdapter(ctx: AgentChatIntegrationContext): Promise<unknown>;
    requiresLeader(): boolean;
    onBeforeConnect(ctx: AgentChatIntegrationContext): Promise<void>;
    onAfterConnect(ctx: AgentChatIntegrationContext): Promise<void>;
    onBeforeDisconnect(ctx: AgentChatIntegrationContext): Promise<void>;
    isUserAllowed(author: Author, integration: AgentIntegrationConfig | undefined): boolean;
    normalizeComponents(components: SuspendComponent[]): SuspendComponent[];
    private getMode;
    private deriveSecretToken;
    private extractBotToken;
    private botApiUrl;
}
