import type { ImporterReturnType, AsyncImporter, AsyncContext } from "node-sass";
import { IEyeglass } from "../IEyeglass";
import { SassImplementation } from "../util/SassImplementation";
import { Config } from "../util/Options";
import { Dict } from "../util/typescriptUtils";
declare type ImportContext = AsyncContext & {
    eyeglass: {
        imported: Dict<boolean>;
    };
};
export declare type LazyString = () => string;
export declare type LazyImportedFile = {
    contents: string | LazyString;
    file: string;
};
export default class ImportUtilities {
    private _isDartSass;
    root: string;
    eyeglass: IEyeglass;
    sass: SassImplementation;
    fallbackImporter: AsyncImporter | Array<AsyncImporter> | undefined;
    options: Config;
    context: ImportContext;
    constructor(eyeglass: IEyeglass, sass: SassImplementation, options: Config, fallbackImporter: AsyncImporter | Array<AsyncImporter> | undefined, context: AsyncContext);
    static createImporter(name: string, importer: AsyncImporter): AsyncImporter;
    importOnce(data: {
        file: string;
        contents: string | LazyString;
    }, done: (data: ImporterReturnType) => void): void;
    private _adaptResult;
    fallback(uri: string, prev: string, done: (result: ImporterReturnType) => void, noFallback: (this: ImportContext) => void): void;
    fallbackNth(uri: string, prev: string, index: number, done: (result: ImporterReturnType) => void, noFallback: (this: ImportContext) => void): void;
}
export {};
//# sourceMappingURL=ImportUtilities.d.ts.map