import type { TailwindV4CssSource } from '@tailwindcss-mangle/engine';
import type { TailwindRuntimeState } from '../../../tailwindcss/runtime.js';
import type { AppType, InternalUserDefinedOptions } from '../../../types/index.js';
export interface WebpackRuntimeClassSetLoaderOptions {
    getClassSet?: () => void | Promise<void>;
    getWatchDependencies?: () => RuntimeLoaderWatchDependencies | Promise<RuntimeLoaderWatchDependencies | void> | void;
    registerCssSourceFile?: (source: WebpackCssSourceRegistration) => void;
    updateGeneratedCss?: (source: WebpackGeneratedCssUpdate) => void;
}
export interface RuntimeLoaderWatchDependencies {
    files?: Iterable<string>;
    contexts?: Iterable<string>;
}
export interface WebpackCssSourceRegistration {
    css?: string | undefined;
    file: string;
    processed?: boolean | undefined;
}
export interface WebpackGeneratedCssRegistration {
    classSet: Set<string>;
    css: string;
    dependencies: string[];
    file: string;
}
export interface WebpackGeneratedCssUpdate {
    css: string;
    file: string;
}
export interface WebpackCssImportRewriteRuntimeOptions {
    pkgDir: string;
    appType?: AppType;
    compilerOptions?: InternalUserDefinedOptions;
    runtimeState?: TailwindRuntimeState;
    registerCssSource?: (source: TailwindV4CssSource) => Promise<void> | void;
    getRuntimeSet?: () => Promise<Set<string>> | Set<string>;
    markGeneratedCssSource?: (file: string) => void;
    registerGeneratedCss?: (source: WebpackGeneratedCssRegistration) => void;
    registerCssSourceFile?: (source: WebpackCssSourceRegistration) => void;
}
export interface WebpackCssImportRewriteLoaderOptions {
    generateCss?: boolean | undefined;
    tailwindcssImportRewrite?: WebpackCssImportRewriteRuntimeOptions;
    tailwindcssImportRewriteRuntimeKey?: string;
}
export interface WebpackLoaderRuntimeEntry {
    classSet?: WebpackRuntimeClassSetLoaderOptions;
    cssImportRewrite?: WebpackCssImportRewriteRuntimeOptions;
}
export declare function setWebpackLoaderRuntime(key: string, entry: WebpackLoaderRuntimeEntry): void;
export declare function deleteWebpackLoaderRuntime(key: string): void;
export declare function getWebpackLoaderRuntime(key?: string): any;
