import type { TailwindV4Engine as EngineTailwindV4Engine, TailwindV4GenerateOptions as EngineTailwindV4GenerateOptions, TailwindV4GenerateResult as EngineTailwindV4GenerateResult, TailwindV4ResolvedSource as EngineTailwindV4ResolvedSource, TailwindV4SourceOptions as EngineTailwindV4SourceOptions, TailwindV4CandidateSource, TailwindV4DesignSystem } from '@tailwindcss-mangle/engine';
import type { IStyleHandlerOptions } from '@weapp-tailwindcss/postcss/types';
export type TailwindV4GenerateTarget = 'weapp' | 'web';
export interface TailwindV4SourcePattern {
    base: string;
    pattern: string;
    negated: boolean;
}
type TailwindV4EngineGenerateOptions = Omit<EngineTailwindV4GenerateOptions, 'target' | 'styleOptions' | 'scanSources' | 'bareArbitraryValues'>;
export type TailwindV4SourceOptions = EngineTailwindV4SourceOptions;
export type TailwindV4CssSource = NonNullable<TailwindV4SourceOptions['cssSources']>[number];
export interface TailwindV4ResolvedSource extends EngineTailwindV4ResolvedSource {
    cwd?: string | undefined;
    projectRoot: string;
    cssSources?: TailwindV4CssSource[] | undefined;
    sources?: TailwindV4SourcePattern[] | undefined;
}
export interface TailwindV4GenerateOptions extends TailwindV4EngineGenerateOptions {
    incrementalCache?: boolean | undefined;
    bareArbitraryValues?: EngineTailwindV4GenerateOptions['bareArbitraryValues'] | undefined;
    target?: TailwindV4GenerateTarget | undefined;
    styleOptions?: Partial<IStyleHandlerOptions> | undefined;
    scanSources?: EngineTailwindV4GenerateOptions['scanSources'] | undefined;
}
export interface TailwindV4SourceOptionsWithSources extends TailwindV4SourceOptions {
    sources?: TailwindV4SourcePattern[] | undefined;
}
export interface TailwindV4GenerateResult extends Omit<EngineTailwindV4GenerateResult, 'css'> {
    css: string;
    rawCss: string;
    incrementalCss?: string | undefined;
    incrementalRawCss?: string | undefined;
    target: TailwindV4GenerateTarget;
}
export interface TailwindV4Engine extends Omit<EngineTailwindV4Engine, 'generate'> {
    source: TailwindV4ResolvedSource;
    generate: (options?: TailwindV4GenerateOptions) => Promise<TailwindV4GenerateResult>;
    dispose?: () => void;
}
export type { TailwindV4CandidateSource, TailwindV4DesignSystem, };
