import Crowdin from '@crowdin/crowdin-api-client';
import { AppSettings, IntegrationLogic, IntegrationSyncSettings, Provider, UpdateCrowdinWebhookPayloadsArgs } from '../types';
import { Config, CrowdinContextInfo } from '../../../types';
export declare const HookEvents: any;
export declare function registerWebhooks({ config, apiCredentials, appSettings, client, crowdinContext, integration, }: {
    config: Config;
    integration: IntegrationLogic;
    client: Crowdin;
    crowdinContext: CrowdinContextInfo;
    apiCredentials: any;
    appSettings: AppSettings;
}): Promise<void>;
export declare function unregisterWebhooks({ apiCredentials, appSettings, client, config, crowdinContext, integration, }: {
    config: Config;
    integration: IntegrationLogic;
    client: Crowdin;
    crowdinContext: CrowdinContextInfo;
    apiCredentials: any;
    appSettings: AppSettings;
}): Promise<void>;
export declare function unregisterAllCrowdinWebhooks({ config, crowdinId, integration, }: {
    config: Config;
    integration: IntegrationLogic;
    crowdinId: string;
}): Promise<void>;
export declare function prepareWebhookData({ config, integration, provider, webhookUrlParam, }: {
    config: Config;
    integration: IntegrationLogic;
    webhookUrlParam: string;
    provider: Provider;
}): Promise<{
    projectId: number;
    crowdinClient: null;
    rootFolder: undefined;
    appSettings: AppSettings;
    syncSettings: null;
    preparedIntegrationCredentials: null;
} | {
    projectId: number;
    crowdinClient: {
        client: Crowdin;
        token: string;
    };
    preparedIntegrationCredentials: any;
    rootFolder: import("@crowdin/crowdin-api-client").SourceFilesModel.Directory | undefined;
    appSettings: AppSettings;
    syncSettings: IntegrationSyncSettings | null;
}>;
export declare function updateCrowdinFromWebhookRequest(args: UpdateCrowdinWebhookPayloadsArgs): Promise<void>;
export declare function listenQueueMessage({ config, integration, queueName, queueUrl, }: {
    config: Config;
    integration: IntegrationLogic;
    queueUrl: string;
    queueName: string;
}): Promise<void>;
