import { SansDependencies } from "../binding";
import { ConfigurationErrorResult, ConfigurationLocations, SucceededDataResult } from "../types";
import { ESLintConfiguration, findESLintConfiguration } from "./findESLintConfiguration";
import { findPackagesConfiguration, PackagesConfiguration } from "./findPackagesConfiguration";
import { DeepPartial } from "./findReportedConfiguration";
import { findTSLintConfiguration, TSLintConfiguration } from "./findTSLintConfiguration";
import { findTypeScriptConfiguration, TypeScriptConfiguration } from "./findTypeScriptConfiguration";
import { mergeLintConfigurations } from "./mergeLintConfigurations";
export type FindOriginalConfigurationsDependencies = {
    findESLintConfiguration: SansDependencies<typeof findESLintConfiguration>;
    findPackagesConfiguration: SansDependencies<typeof findPackagesConfiguration>;
    findTypeScriptConfiguration: SansDependencies<typeof findTypeScriptConfiguration>;
    findTSLintConfiguration: SansDependencies<typeof findTSLintConfiguration>;
    mergeLintConfigurations: typeof mergeLintConfigurations;
};
/**
 * Both found configurations for a particular linter.
 */
export type OriginalConfigurations<Configuration> = {
    /**
     * Settings reported by the linter's native --print-config equivalent.
     */
    full: Configuration;
    /**
     * Raw import results from `import`ing the configuration file.
     */
    raw: DeepPartial<Configuration>;
};
export type AllOriginalConfigurations = {
    eslint?: OriginalConfigurations<ESLintConfiguration>;
    packages?: PackagesConfiguration;
    tslint: OriginalConfigurations<TSLintConfiguration>;
    typescript?: TypeScriptConfiguration;
};
/**
 * Searches for all relevant input configurations on disk.
 */
export declare const findOriginalConfigurations: (dependencies: FindOriginalConfigurationsDependencies, locations: ConfigurationLocations) => Promise<ConfigurationErrorResult | SucceededDataResult<AllOriginalConfigurations>>;
