/**
 * Extracts class name candidates from the given markup.
 *
 * Uses the implementation from Tailwind V3, because it can run in the browser.
 * In Tailwind V4, this is handled by the Oxide engine that's written in Rust
 * and requires a Node.js runtime.
 *
 * @see https://github.com/tailwindlabs/tailwindcss/blob/v3.4.14/src/lib/defaultExtractor.js
 *
 * @param markup - The markup from which to extract class name candidates.
 *
 * @returns The class name candidates extracted from the markup. Note that there
 *     can be invalid utility class names in the result, and that is expected.
 */
declare function extractClassNameCandidates(markup: string): string[];
/**
 * Options for compiling CSS.
 * @see {compileCss}
 */
type CompileCssOptions = {
    /**
     * Whether to add Tailwind's Preflight, a set of base styles and CSS reset.
     * @see https://tailwindcss.com/docs/preflight
     */
    addPreflight?: boolean;
};
/**
 * Compiles CSS from class name candidates and Tailwind 4 configuration CSS.
 *
 * Uses Tailwind 4 where configuration is done via CSS variables.
 * @see https://tailwindcss.com/docs/configuration
 * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.1.4/packages/tailwindcss/src/index.ts#L761
 *
 * @param classNameCandidates - The class name candidates for compilation.
 * @param [configurationCss] - CSS that acts as the Tailwind V4 configuration,
 *     as well as any additional CSS. This is where you would normally add
 *     `@import "tailwindcss"`, which imports the followings:
 *       - the default theme,
 *         @see https://tailwindcss.com/docs/theme#default-theme-variable-reference
 *       - the `base`/`preflight` layer,
 *       - the `components` layer —yet to be implemented in Tailwind 4—, and
 *       - the `utilities` layer.
 *     All of the above are already taken care of in this function. All you need
 *     to do is add your customizations with a `@theme` directive. See what you
 *     can override in Tailwind 4's default theme.
 *     @see https://tailwindcss.com/docs/theme#default-theme-variable-reference
 *     You also have the option to skip adding the `base`/`preflight` layer.
 *     @see {CompileCssOptions.addPreflight}
 * @param options - Options for compiling the CSS.
 * @param [options.addPreflight=true] - @see {CompileCssOptions.addPreflight}
 *
 * @returns The compiled CSS. The syntax is modern CSS syntax that needs to be
 * transformed to ensure compatibility with older browsers.
 */
declare function compileCss(classNameCandidates: string[], configurationCss: string, { addPreflight }?: CompileCssOptions): Promise<string>;
/**
 * Options for transforming CSS.
 * @see {transformCss}
 */
type TransformCssOptions = {
    /**
     * Whether to minify the CSS.
     *
     * @default true
     */
    minify?: boolean;
};
/**
 * Transforms CSS to ensure compatibility with older browsers.
 *
 * Uses the WASM build of Lightning CSS to match the behavior of Tailwind 4's
 * CLI.
 *
 * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.1.4/packages/%40tailwindcss-node/src/optimize.ts
 *
 * @param css - The CSS to transform.
 * @param options - Options for transforming the CSS.
 * @param [options.minify=true] - @see {TransformCssOptions.minify}
 *
 * @returns The transformed CSS.
 */
declare function transformCss(css: string, { minify }?: TransformCssOptions): Promise<string>;
/**
 * Builds CSS with Tailwind V4 using the given markup and CSS configuration.
 *
 * Process: extract class names from markup → Compile CSS → Transform CSS.
 * - @see {extractClassNameCandidates}
 * - @see {compileCss}
 * - @see {transformCss}
 * For more granular control, use the individual functions.
 *
 * @param markup - The markup from which to extract Tailwind classes for
 *     generating the CSS.
 * @param configurationCss - CSS that acts as the Tailwind V4 configuration, as
 *     well as any additional CSS.
 *     @see {compileCss}
 * @param [options] - Options to use for compiling and transforming the CSS.
 * @param [options.compileCssOptions] - @see {CompileCssOptions}
 * @param [options.transformCssOptions] - @see {TransformCssOptions}
 *
 * @returns Compiled and transformed CSS.
 */
declare function buildCss(markup: string, configurationCss: string, { compileCssOptions, transformCssOptions, }?: {
    compileCssOptions?: CompileCssOptions;
    transformCssOptions?: TransformCssOptions;
}): Promise<string>;

export { type CompileCssOptions, type TransformCssOptions, compileCss, buildCss as default, extractClassNameCandidates, transformCss };
