import type { LegacyOptions as SassLegacyOptions, Options as SassOptions } from 'sass';
interface StyleSheetIdAndContent {
    id?: string;
    content?: string;
}
export type RollupPluginSassOutputFn = (styles: string, styleNodes: StyleSheetIdAndContent[]) => unknown;
export type RollupPluginSassProcessorFnOutput = string | {
    css: string;
    cssModules?: Record<string, string>;
    [key: string]: unknown;
};
export type RollupPluginSassProcessorFn<T = RollupPluginSassProcessorFnOutput> = (styles: string, id: string) => Promise<T> | T;
interface RollupPluginSassSharedOptions {
    exclude?: string | string[];
    include?: string | string[];
    insert?: boolean;
    processor?: RollupPluginSassProcessorFn;
    output?: boolean | string | RollupPluginSassOutputFn;
    runtime?: any;
}
export type RollupPluginSassModernOptions = Omit<SassOptions<'async'>, 'sourceMap'> & {
    data?: string;
};
export type RollupPluginSassLegacyOptions = Omit<SassLegacyOptions<'async'>, 'data'> & {
    data?: string;
};
export type RollupPluginSassOptions = (RollupPluginSassSharedOptions & {
    api: 'modern';
    options?: RollupPluginSassModernOptions;
}) | (RollupPluginSassSharedOptions & {
    api?: 'legacy';
    options?: RollupPluginSassLegacyOptions;
});
export type RollupPluginSassState = {
    styles: StyleSheetIdAndContent[];
    styleMaps: {
        [index: string]: StyleSheetIdAndContent;
    };
};
export {};
