import Crowdin, { SourceFilesModel } from '@crowdin/crowdin-api-client';
import { Config, CrowdinContextInfo } from '../../../types';
import { CronJob, IntegrationLogic, IntegrationRequest, Provider, UpdateIntegrationRequest } from '../types';
import { JobClientType, JobType } from './types';
export declare function runJob({ config, integration, job, }: {
    config: Config;
    integration: IntegrationLogic;
    job: CronJob;
}): Promise<void>;
export declare function runUpdateProviderJob({ integrationId, crowdinId, type, title, payload, jobType, projectId, client, integration, context, credentials, rootFolder, appSettings, reRunJobId, }: {
    integrationId: string;
    crowdinId: string;
    type: JobType;
    title?: string;
    payload?: any;
    jobType: JobClientType;
    projectId: number;
    client: Crowdin;
    integration: IntegrationLogic;
    context: CrowdinContextInfo;
    credentials: any;
    rootFolder?: SourceFilesModel.Directory;
    appSettings?: any;
    reRunJobId?: string;
}): Promise<void>;
export declare function filesCron({ config, integration, period, }: {
    config: Config;
    integration: IntegrationLogic;
    period: string;
}): Promise<void>;
export declare function filterFilesFromIntegrationRequest({ config, integration, projectId, crowdinClient, crowdinFiles, }: {
    config: Config;
    integration: IntegrationLogic;
    projectId: number;
    crowdinFiles: UpdateIntegrationRequest;
    crowdinClient: Crowdin;
}): Promise<UpdateIntegrationRequest>;
export declare function createOrUpdateSyncSettings({ req, files, provider, onlyCreate, }: {
    req: IntegrationRequest;
    files: any;
    provider: Provider;
    onlyCreate?: boolean;
}): Promise<void>;
export declare function removeFinishedJobs(): Promise<void>;
