import { IntegrationFile, TreeItem, UpdateIntegrationRequest } from '../../modules/integration/types';
export interface ExpectedObject {
    [key: string]: unknown;
}
export interface ExpectedUpdateCrowdin {
    files?: ExpectedObject[];
    folders?: ExpectedObject[];
}
export interface BaseMethodTestConfig {
    disabled?: boolean;
    setup?: () => Promise<void>;
    extraChecks?: (params?: any) => Promise<void>;
}
export interface GetIntegrationFilesConfig extends Omit<BaseMethodTestConfig, 'disabled'> {
    expected: TreeItem[];
}
export interface UpdateCrowdinConfig extends Partial<BaseMethodTestConfig> {
    updateProgressDisabled?: boolean;
    expected?: ExpectedUpdateCrowdin;
    updateRequest?: IntegrationFile[];
    extraChecks?: (params: {
        request: IntegrationFile[];
        result?: unknown;
    }) => Promise<void>;
}
export interface UpdateIntegrationConfig extends BaseMethodTestConfig {
    updateProgressDisabled?: boolean;
    updateRequest?: UpdateIntegrationRequest;
    extraChecks?: (params: {
        request: UpdateIntegrationRequest;
        result?: unknown;
    }) => Promise<void>;
}
export interface IntegrationTestConfig {
    getIntegrationFiles: GetIntegrationFilesConfig;
    updateCrowdin?: UpdateCrowdinConfig;
    updateIntegration?: UpdateIntegrationConfig;
    settings?: object;
    integrationCredentials?: object;
    beforeAll?: () => Promise<void>;
}
