import Crowdin, { SourceFilesModel } from '@crowdin/crowdin-api-client';
import { Config } from '../../../types';
import { FormEntity, FormField, IntegrationLogic } from '../types';
export declare function getRootFolder(config: Config, integration: IntegrationLogic, client: Crowdin, projectId: number): Promise<SourceFilesModel.Directory | undefined>;
export declare function getOauthRoute(integration: IntegrationLogic): string;
export declare function applyIntegrationModuleDefaults(config: Config, integration: IntegrationLogic): void;
export declare function constructOauthUrl({ config, integration, clientId, loginForm, }: {
    config: Config;
    integration: IntegrationLogic;
    clientId: string;
    loginForm?: any;
}): string | undefined;
export declare function getOAuthPollingId(clientId: string): string;
export declare function getOAuthLoginFormId(clientId: string): string;
export declare function groupFieldsByCategory(fields: FormEntity[]): {
    name: string;
    fields: FormField[];
}[];
export declare function buildMenuItems(integration: IntegrationLogic, appName: string): {
    integrationButtonMenuItems: string | null;
    crowdinButtonMenuItems: string | null;
};
