478 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			TypeScript
		
	
	
			
		
		
	
	
			478 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			TypeScript
		
	
	
import type { Angle, CssColor, Rule, CustomProperty, EnvironmentVariable, Function, Image, LengthValue, MediaQuery, Declaration, Ratio, Resolution, Selector, SupportsCondition, Time, Token, TokenOrValue, UnknownAtRule, Url, Variable, StyleRule, DeclarationBlock, ParsedComponent, Multiplier, StyleSheet, Location2 } from './ast';
 | 
						|
import { Targets, Features } from './targets';
 | 
						|
 | 
						|
export * from './ast';
 | 
						|
 | 
						|
export { Targets, Features };
 | 
						|
 | 
						|
export interface TransformOptions<C extends CustomAtRules> {
 | 
						|
  /** The filename being transformed. Used for error messages and source maps. */
 | 
						|
  filename: string,
 | 
						|
  /** The source code to transform. */
 | 
						|
  code: Uint8Array,
 | 
						|
  /** Whether to enable minification. */
 | 
						|
  minify?: boolean,
 | 
						|
  /** Whether to output a source map. */
 | 
						|
  sourceMap?: boolean,
 | 
						|
  /** An input source map to extend. */
 | 
						|
  inputSourceMap?: string,
 | 
						|
  /**
 | 
						|
   * An optional project root path, used as the source root in the output source map.
 | 
						|
   * Also used to generate relative paths for sources used in CSS module hashes.
 | 
						|
   */
 | 
						|
  projectRoot?: string,
 | 
						|
  /** The browser targets for the generated code. */
 | 
						|
  targets?: Targets,
 | 
						|
  /** Features that should always be compiled, even when supported by targets. */
 | 
						|
  include?: number,
 | 
						|
  /** Features that should never be compiled, even when unsupported by targets. */
 | 
						|
  exclude?: number,
 | 
						|
  /** Whether to enable parsing various draft syntax. */
 | 
						|
  drafts?: Drafts,
 | 
						|
  /** Whether to enable various non-standard syntax. */
 | 
						|
  nonStandard?: NonStandard,
 | 
						|
  /** Whether to compile this file as a CSS module. */
 | 
						|
  cssModules?: boolean | CSSModulesConfig,
 | 
						|
  /**
 | 
						|
   * Whether to analyze dependencies (e.g. `@import` and `url()`).
 | 
						|
   * When enabled, `@import` rules are removed, and `url()` dependencies
 | 
						|
   * are replaced with hashed placeholders that can be replaced with the final
 | 
						|
   * urls later (after bundling). Dependencies are returned as part of the result.
 | 
						|
   */
 | 
						|
  analyzeDependencies?: boolean | DependencyOptions,
 | 
						|
  /**
 | 
						|
   * Replaces user action pseudo classes with class names that can be applied from JavaScript.
 | 
						|
   * This is useful for polyfills, for example.
 | 
						|
   */
 | 
						|
  pseudoClasses?: PseudoClasses,
 | 
						|
  /**
 | 
						|
   * A list of class names, ids, and custom identifiers (e.g. @keyframes) that are known
 | 
						|
   * to be unused. These will be removed during minification. Note that these are not
 | 
						|
   * selectors but individual names (without any . or # prefixes).
 | 
						|
   */
 | 
						|
  unusedSymbols?: string[],
 | 
						|
  /**
 | 
						|
   * Whether to ignore invalid rules and declarations rather than erroring.
 | 
						|
   * When enabled, warnings are returned, and the invalid rule or declaration is
 | 
						|
   * omitted from the output code.
 | 
						|
   */
 | 
						|
  errorRecovery?: boolean,
 | 
						|
  /**
 | 
						|
   * An AST visitor object. This allows custom transforms or analysis to be implemented in JavaScript.
 | 
						|
   * Multiple visitors can be composed into one using the `composeVisitors` function.
 | 
						|
   * For optimal performance, visitors should be as specific as possible about what types of values
 | 
						|
   * they care about so that JavaScript has to be called as little as possible.
 | 
						|
   */
 | 
						|
  visitor?: Visitor<C>,
 | 
						|
  /**
 | 
						|
   * Defines how to parse custom CSS at-rules. Each at-rule can have a prelude, defined using a CSS
 | 
						|
   * [syntax string](https://drafts.css-houdini.org/css-properties-values-api/#syntax-strings), and
 | 
						|
   * a block body. The body can be a declaration list, rule list, or style block as defined in the
 | 
						|
   * [css spec](https://drafts.csswg.org/css-syntax/#declaration-rule-list).
 | 
						|
   */
 | 
						|
  customAtRules?: C
 | 
						|
}
 | 
						|
 | 
						|
// This is a hack to make TS still provide autocomplete for `property` vs. just making it `string`.
 | 
						|
type PropertyStart = '-' | '_' | 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | 'h' | 'i' | 'j' | 'k' | 'l' | 'm' | 'n' | 'o' | 'p' | 'q' | 'r' | 's' | 't' | 'u' | 'v' | 'w' | 'x' | 'y' | 'z';
 | 
						|
export type ReturnedDeclaration = Declaration | {
 | 
						|
  /** The property name. */
 | 
						|
  property: `${PropertyStart}${string}`,
 | 
						|
  /** The raw string value for the declaration. */
 | 
						|
  raw: string
 | 
						|
};
 | 
						|
 | 
						|
export type ReturnedMediaQuery = MediaQuery | {
 | 
						|
  /** The raw string value for the media query. */
 | 
						|
  raw: string
 | 
						|
};
 | 
						|
 | 
						|
type FindByType<Union, Name> = Union extends { type: Name } ? Union : never;
 | 
						|
export type ReturnedRule = Rule<ReturnedDeclaration, ReturnedMediaQuery>;
 | 
						|
type RequiredValue<Rule> = Rule extends { value: object }
 | 
						|
  ? Rule['value'] extends StyleRule
 | 
						|
  ? Rule & { value: Required<StyleRule> & { declarations: Required<DeclarationBlock> } }
 | 
						|
  : Rule & { value: Required<Rule['value']> }
 | 
						|
  : Rule;
 | 
						|
type RuleVisitor<R = RequiredValue<Rule>> = ((rule: R) => ReturnedRule | ReturnedRule[] | void);
 | 
						|
type MappedRuleVisitors = {
 | 
						|
  [Name in Exclude<Rule['type'], 'unknown' | 'custom'>]?: RuleVisitor<RequiredValue<FindByType<Rule, Name>>>;
 | 
						|
}
 | 
						|
 | 
						|
type UnknownVisitors<T> = {
 | 
						|
  [name: string]: RuleVisitor<T>
 | 
						|
}
 | 
						|
 | 
						|
type CustomVisitors<T extends CustomAtRules> = {
 | 
						|
  [Name in keyof T]?: RuleVisitor<CustomAtRule<Name, T[Name]>>
 | 
						|
};
 | 
						|
 | 
						|
type AnyCustomAtRule<C extends CustomAtRules> = {
 | 
						|
  [Key in keyof C]: CustomAtRule<Key, C[Key]>
 | 
						|
}[keyof C];
 | 
						|
 | 
						|
type RuleVisitors<C extends CustomAtRules> = MappedRuleVisitors & {
 | 
						|
  unknown?: UnknownVisitors<UnknownAtRule> | Omit<RuleVisitor<UnknownAtRule>, keyof CallableFunction>,
 | 
						|
  custom?: CustomVisitors<C> | Omit<RuleVisitor<AnyCustomAtRule<C>>, keyof CallableFunction>
 | 
						|
};
 | 
						|
 | 
						|
type PreludeTypes = Exclude<ParsedComponent['type'], 'literal' | 'repeated' | 'token'>;
 | 
						|
type SyntaxString = `<${PreludeTypes}>` | `<${PreludeTypes}>+` | `<${PreludeTypes}>#` | (string & {});
 | 
						|
type ComponentTypes = {
 | 
						|
  [Key in PreludeTypes as `<${Key}>`]: FindByType<ParsedComponent, Key>
 | 
						|
};
 | 
						|
 | 
						|
type Repetitions = {
 | 
						|
  [Key in PreludeTypes as `<${Key}>+` | `<${Key}>#`]: {
 | 
						|
    type: "repeated",
 | 
						|
    value: {
 | 
						|
      components: FindByType<ParsedComponent, Key>[],
 | 
						|
      multiplier: Multiplier
 | 
						|
    }
 | 
						|
  }
 | 
						|
};
 | 
						|
 | 
						|
type MappedPrelude = ComponentTypes & Repetitions;
 | 
						|
type MappedBody<P extends CustomAtRuleDefinition['body']> = P extends 'style-block' ? 'rule-list' : P;
 | 
						|
interface CustomAtRule<N, R extends CustomAtRuleDefinition> {
 | 
						|
  name: N,
 | 
						|
  prelude: R['prelude'] extends keyof MappedPrelude ? MappedPrelude[R['prelude']] : ParsedComponent,
 | 
						|
  body: FindByType<CustomAtRuleBody, MappedBody<R['body']>>,
 | 
						|
  loc: Location2
 | 
						|
}
 | 
						|
 | 
						|
type CustomAtRuleBody = {
 | 
						|
  type: 'declaration-list',
 | 
						|
  value: Required<DeclarationBlock>
 | 
						|
} | {
 | 
						|
  type: 'rule-list',
 | 
						|
  value: RequiredValue<Rule>[]
 | 
						|
};
 | 
						|
 | 
						|
type FindProperty<Union, Name> = Union extends { property: Name } ? Union : never;
 | 
						|
type DeclarationVisitor<P = Declaration> = ((property: P) => ReturnedDeclaration | ReturnedDeclaration[] | void);
 | 
						|
type MappedDeclarationVisitors = {
 | 
						|
  [Name in Exclude<Declaration['property'], 'unparsed' | 'custom'>]?: DeclarationVisitor<FindProperty<Declaration, Name> | FindProperty<Declaration, 'unparsed'>>;
 | 
						|
}
 | 
						|
 | 
						|
type CustomPropertyVisitors = {
 | 
						|
  [name: string]: DeclarationVisitor<CustomProperty>
 | 
						|
}
 | 
						|
 | 
						|
type DeclarationVisitors = MappedDeclarationVisitors & {
 | 
						|
  custom?: CustomPropertyVisitors | DeclarationVisitor<CustomProperty>
 | 
						|
}
 | 
						|
 | 
						|
interface RawValue {
 | 
						|
  /** A raw string value which will be parsed like CSS. */
 | 
						|
  raw: string
 | 
						|
}
 | 
						|
 | 
						|
type TokenReturnValue = TokenOrValue | TokenOrValue[] | RawValue | void;
 | 
						|
type TokenVisitor = (token: Token) => TokenReturnValue;
 | 
						|
type VisitableTokenTypes = 'ident' | 'at-keyword' | 'hash' | 'id-hash' | 'string' | 'number' | 'percentage' | 'dimension';
 | 
						|
type TokenVisitors = {
 | 
						|
  [Name in VisitableTokenTypes]?: (token: FindByType<Token, Name>) => TokenReturnValue;
 | 
						|
}
 | 
						|
 | 
						|
type FunctionVisitor = (fn: Function) => TokenReturnValue;
 | 
						|
type EnvironmentVariableVisitor = (env: EnvironmentVariable) => TokenReturnValue;
 | 
						|
type EnvironmentVariableVisitors = {
 | 
						|
  [name: string]: EnvironmentVariableVisitor
 | 
						|
};
 | 
						|
 | 
						|
export interface Visitor<C extends CustomAtRules> {
 | 
						|
  StyleSheet?(stylesheet: StyleSheet): StyleSheet<ReturnedDeclaration, ReturnedMediaQuery> | void;
 | 
						|
  StyleSheetExit?(stylesheet: StyleSheet): StyleSheet<ReturnedDeclaration, ReturnedMediaQuery> | void;
 | 
						|
  Rule?: RuleVisitor | RuleVisitors<C>;
 | 
						|
  RuleExit?: RuleVisitor | RuleVisitors<C>;
 | 
						|
  Declaration?: DeclarationVisitor | DeclarationVisitors;
 | 
						|
  DeclarationExit?: DeclarationVisitor | DeclarationVisitors;
 | 
						|
  Url?(url: Url): Url | void;
 | 
						|
  Color?(color: CssColor): CssColor | void;
 | 
						|
  Image?(image: Image): Image | void;
 | 
						|
  ImageExit?(image: Image): Image | void;
 | 
						|
  Length?(length: LengthValue): LengthValue | void;
 | 
						|
  Angle?(angle: Angle): Angle | void;
 | 
						|
  Ratio?(ratio: Ratio): Ratio | void;
 | 
						|
  Resolution?(resolution: Resolution): Resolution | void;
 | 
						|
  Time?(time: Time): Time | void;
 | 
						|
  CustomIdent?(ident: string): string | void;
 | 
						|
  DashedIdent?(ident: string): string | void;
 | 
						|
  MediaQuery?(query: MediaQuery): ReturnedMediaQuery | ReturnedMediaQuery[] | void;
 | 
						|
  MediaQueryExit?(query: MediaQuery): ReturnedMediaQuery | ReturnedMediaQuery[] | void;
 | 
						|
  SupportsCondition?(condition: SupportsCondition): SupportsCondition;
 | 
						|
  SupportsConditionExit?(condition: SupportsCondition): SupportsCondition;
 | 
						|
  Selector?(selector: Selector): Selector | Selector[] | void;
 | 
						|
  Token?: TokenVisitor | TokenVisitors;
 | 
						|
  Function?: FunctionVisitor | { [name: string]: FunctionVisitor };
 | 
						|
  FunctionExit?: FunctionVisitor | { [name: string]: FunctionVisitor };
 | 
						|
  Variable?(variable: Variable): TokenReturnValue;
 | 
						|
  VariableExit?(variable: Variable): TokenReturnValue;
 | 
						|
  EnvironmentVariable?: EnvironmentVariableVisitor | EnvironmentVariableVisitors;
 | 
						|
  EnvironmentVariableExit?: EnvironmentVariableVisitor | EnvironmentVariableVisitors;
 | 
						|
}
 | 
						|
 | 
						|
export interface CustomAtRules {
 | 
						|
  [name: string]: CustomAtRuleDefinition
 | 
						|
}
 | 
						|
 | 
						|
export interface CustomAtRuleDefinition {
 | 
						|
  /**
 | 
						|
   * Defines the syntax for a custom at-rule prelude. The value should be a
 | 
						|
   * CSS [syntax string](https://drafts.css-houdini.org/css-properties-values-api/#syntax-strings)
 | 
						|
   * representing the types of values that are accepted. This property may be omitted or
 | 
						|
   * set to null to indicate that no prelude is accepted.
 | 
						|
   */
 | 
						|
  prelude?: SyntaxString | null,
 | 
						|
  /**
 | 
						|
   * Defines the type of body contained within the at-rule block.
 | 
						|
   *   - declaration-list: A CSS declaration list, as in a style rule.
 | 
						|
   *   - rule-list: A list of CSS rules, as supported within a non-nested
 | 
						|
   *       at-rule such as `@media` or `@supports`.
 | 
						|
   *   - style-block: Both a declaration list and rule list, as accepted within
 | 
						|
   *       a nested at-rule within a style rule (e.g. `@media` inside a style rule
 | 
						|
   *       with directly nested declarations).
 | 
						|
   */
 | 
						|
  body?: 'declaration-list' | 'rule-list' | 'style-block' | null
 | 
						|
}
 | 
						|
 | 
						|
export interface DependencyOptions {
 | 
						|
  /** Whether to preserve `@import` rules rather than removing them. */
 | 
						|
  preserveImports?: boolean
 | 
						|
}
 | 
						|
 | 
						|
export type BundleOptions<C extends CustomAtRules> = Omit<TransformOptions<C>, 'code'>;
 | 
						|
 | 
						|
export interface BundleAsyncOptions<C extends CustomAtRules> extends BundleOptions<C> {
 | 
						|
  resolver?: Resolver;
 | 
						|
}
 | 
						|
 | 
						|
/** Custom resolver to use when loading CSS files. */
 | 
						|
export interface Resolver {
 | 
						|
  /** Read the given file and return its contents as a string. */
 | 
						|
  read?: (file: string) => string | Promise<string>;
 | 
						|
 | 
						|
  /**
 | 
						|
   * Resolve the given CSS import specifier from the provided originating file to a
 | 
						|
   * path which gets passed to `read()`.
 | 
						|
   */
 | 
						|
  resolve?: (specifier: string, originatingFile: string) => string | Promise<string>;
 | 
						|
}
 | 
						|
 | 
						|
export interface Drafts {
 | 
						|
  /** Whether to enable @custom-media rules. */
 | 
						|
  customMedia?: boolean
 | 
						|
}
 | 
						|
 | 
						|
export interface NonStandard {
 | 
						|
  /** Whether to enable the non-standard >>> and /deep/ selector combinators used by Angular and Vue. */
 | 
						|
  deepSelectorCombinator?: boolean
 | 
						|
}
 | 
						|
 | 
						|
export interface PseudoClasses {
 | 
						|
  hover?: string,
 | 
						|
  active?: string,
 | 
						|
  focus?: string,
 | 
						|
  focusVisible?: string,
 | 
						|
  focusWithin?: string
 | 
						|
}
 | 
						|
 | 
						|
export interface TransformResult {
 | 
						|
  /** The transformed code. */
 | 
						|
  code: Uint8Array,
 | 
						|
  /** The generated source map, if enabled. */
 | 
						|
  map: Uint8Array | void,
 | 
						|
  /** CSS module exports, if enabled. */
 | 
						|
  exports: CSSModuleExports | void,
 | 
						|
  /** CSS module references, if `dashedIdents` is enabled. */
 | 
						|
  references: CSSModuleReferences,
 | 
						|
  /** `@import` and `url()` dependencies, if enabled. */
 | 
						|
  dependencies: Dependency[] | void,
 | 
						|
  /** Warnings that occurred during compilation. */
 | 
						|
  warnings: Warning[]
 | 
						|
}
 | 
						|
 | 
						|
export interface Warning {
 | 
						|
  message: string,
 | 
						|
  type: string,
 | 
						|
  value?: any,
 | 
						|
  loc: ErrorLocation
 | 
						|
}
 | 
						|
 | 
						|
export interface CSSModulesConfig {
 | 
						|
  /** The pattern to use when renaming class names and other identifiers. Default is `[hash]_[local]`. */
 | 
						|
  pattern?: string,
 | 
						|
  /** Whether to rename dashed identifiers, e.g. custom properties. */
 | 
						|
  dashedIdents?: boolean,
 | 
						|
  /** Whether to enable hashing for `@keyframes`. */
 | 
						|
  animation?: boolean,
 | 
						|
  /** Whether to enable hashing for CSS grid identifiers. */
 | 
						|
  grid?: boolean,
 | 
						|
  /** Whether to enable hashing for `@container` names. */
 | 
						|
  container?: boolean,
 | 
						|
  /** Whether to enable hashing for custom identifiers. */
 | 
						|
  customIdents?: boolean,
 | 
						|
  /** Whether to require at least one class or id selector in each rule. */
 | 
						|
  pure?: boolean
 | 
						|
}
 | 
						|
 | 
						|
export type CSSModuleExports = {
 | 
						|
  /** Maps exported (i.e. original) names to local names. */
 | 
						|
  [name: string]: CSSModuleExport
 | 
						|
};
 | 
						|
 | 
						|
export interface CSSModuleExport {
 | 
						|
  /** The local (compiled) name for this export. */
 | 
						|
  name: string,
 | 
						|
  /** Whether the export is referenced in this file. */
 | 
						|
  isReferenced: boolean,
 | 
						|
  /** Other names that are composed by this export. */
 | 
						|
  composes: CSSModuleReference[]
 | 
						|
}
 | 
						|
 | 
						|
export type CSSModuleReferences = {
 | 
						|
  /** Maps placeholder names to references. */
 | 
						|
  [name: string]: DependencyCSSModuleReference,
 | 
						|
};
 | 
						|
 | 
						|
export type CSSModuleReference = LocalCSSModuleReference | GlobalCSSModuleReference | DependencyCSSModuleReference;
 | 
						|
 | 
						|
export interface LocalCSSModuleReference {
 | 
						|
  type: 'local',
 | 
						|
  /** The local (compiled) name for the reference. */
 | 
						|
  name: string,
 | 
						|
}
 | 
						|
 | 
						|
export interface GlobalCSSModuleReference {
 | 
						|
  type: 'global',
 | 
						|
  /** The referenced global name. */
 | 
						|
  name: string,
 | 
						|
}
 | 
						|
 | 
						|
export interface DependencyCSSModuleReference {
 | 
						|
  type: 'dependency',
 | 
						|
  /** The name to reference within the dependency. */
 | 
						|
  name: string,
 | 
						|
  /** The dependency specifier for the referenced file. */
 | 
						|
  specifier: string
 | 
						|
}
 | 
						|
 | 
						|
export type Dependency = ImportDependency | UrlDependency;
 | 
						|
 | 
						|
export interface ImportDependency {
 | 
						|
  type: 'import',
 | 
						|
  /** The url of the `@import` dependency. */
 | 
						|
  url: string,
 | 
						|
  /** The media query for the `@import` rule. */
 | 
						|
  media: string | null,
 | 
						|
  /** The `supports()` query for the `@import` rule. */
 | 
						|
  supports: string | null,
 | 
						|
  /** The source location where the `@import` rule was found. */
 | 
						|
  loc: SourceLocation,
 | 
						|
  /** The placeholder that the import was replaced with. */
 | 
						|
  placeholder: string
 | 
						|
}
 | 
						|
 | 
						|
export interface UrlDependency {
 | 
						|
  type: 'url',
 | 
						|
  /** The url of the dependency. */
 | 
						|
  url: string,
 | 
						|
  /** The source location where the `url()` was found. */
 | 
						|
  loc: SourceLocation,
 | 
						|
  /** The placeholder that the url was replaced with. */
 | 
						|
  placeholder: string
 | 
						|
}
 | 
						|
 | 
						|
export interface SourceLocation {
 | 
						|
  /** The file path in which the dependency exists. */
 | 
						|
  filePath: string,
 | 
						|
  /** The start location of the dependency. */
 | 
						|
  start: Location,
 | 
						|
  /** The end location (inclusive) of the dependency. */
 | 
						|
  end: Location
 | 
						|
}
 | 
						|
 | 
						|
export interface Location {
 | 
						|
  /** The line number (1-based). */
 | 
						|
  line: number,
 | 
						|
  /** The column number (0-based). */
 | 
						|
  column: number
 | 
						|
}
 | 
						|
 | 
						|
export interface ErrorLocation extends Location {
 | 
						|
  filename: string
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * Compiles a CSS file, including optionally minifying and lowering syntax to the given
 | 
						|
 * targets. A source map may also be generated, but this is not enabled by default.
 | 
						|
 */
 | 
						|
export declare function transform<C extends CustomAtRules>(options: TransformOptions<C>): TransformResult;
 | 
						|
 | 
						|
export interface TransformAttributeOptions {
 | 
						|
  /** The filename in which the style attribute appeared. Used for error messages and dependencies. */
 | 
						|
  filename?: string,
 | 
						|
  /** The source code to transform. */
 | 
						|
  code: Uint8Array,
 | 
						|
  /** Whether to enable minification. */
 | 
						|
  minify?: boolean,
 | 
						|
  /** The browser targets for the generated code. */
 | 
						|
  targets?: Targets,
 | 
						|
  /**
 | 
						|
   * Whether to analyze `url()` dependencies.
 | 
						|
   * When enabled, `url()` dependencies are replaced with hashed placeholders
 | 
						|
   * that can be replaced with the final urls later (after bundling).
 | 
						|
   * Dependencies are returned as part of the result.
 | 
						|
   */
 | 
						|
  analyzeDependencies?: boolean,
 | 
						|
  /**
 | 
						|
   * Whether to ignore invalid rules and declarations rather than erroring.
 | 
						|
   * When enabled, warnings are returned, and the invalid rule or declaration is
 | 
						|
   * omitted from the output code.
 | 
						|
   */
 | 
						|
  errorRecovery?: boolean,
 | 
						|
  /**
 | 
						|
   * An AST visitor object. This allows custom transforms or analysis to be implemented in JavaScript.
 | 
						|
   * Multiple visitors can be composed into one using the `composeVisitors` function.
 | 
						|
   * For optimal performance, visitors should be as specific as possible about what types of values
 | 
						|
   * they care about so that JavaScript has to be called as little as possible.
 | 
						|
   */
 | 
						|
  visitor?: Visitor<never>
 | 
						|
}
 | 
						|
 | 
						|
export interface TransformAttributeResult {
 | 
						|
  /** The transformed code. */
 | 
						|
  code: Uint8Array,
 | 
						|
  /** `@import` and `url()` dependencies, if enabled. */
 | 
						|
  dependencies: Dependency[] | void,
 | 
						|
  /** Warnings that occurred during compilation. */
 | 
						|
  warnings: Warning[]
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * Compiles a single CSS declaration list, such as an inline style attribute in HTML.
 | 
						|
 */
 | 
						|
export declare function transformStyleAttribute(options: TransformAttributeOptions): TransformAttributeResult;
 | 
						|
 | 
						|
/**
 | 
						|
 * Converts a browserslist result into targets that can be passed to lightningcss.
 | 
						|
 * @param browserslist the result of calling `browserslist`
 | 
						|
 */
 | 
						|
export declare function browserslistToTargets(browserslist: string[]): Targets;
 | 
						|
 | 
						|
/**
 | 
						|
 * Bundles a CSS file and its dependencies, inlining @import rules.
 | 
						|
 */
 | 
						|
export declare function bundle<C extends CustomAtRules>(options: BundleOptions<C>): TransformResult;
 | 
						|
 | 
						|
/**
 | 
						|
 * Bundles a CSS file and its dependencies asynchronously, inlining @import rules.
 | 
						|
 */
 | 
						|
export declare function bundleAsync<C extends CustomAtRules>(options: BundleAsyncOptions<C>): Promise<TransformResult>;
 | 
						|
 | 
						|
/**
 | 
						|
 * Composes multiple visitor objects into a single one.
 | 
						|
 */
 | 
						|
export declare function composeVisitors<C extends CustomAtRules>(visitors: Visitor<C>[]): Visitor<C>;
 |