import { Logger, Plugin, Resolver as Resolver$1, Token, TokenNormalized, TokenNormalizedSet } from "@terrazzo/parser";

//#region src/lib.d.ts
declare const FORMAT_ID = "js";
declare const DEFAULT_PROPERTIES: Set<keyof TokenNormalized>;
interface JSPluginOptions<T extends Record<string, string> = Record<string, string>> {
  /**
   * Change the output filename
   * @default "index.js"
   */
  filename?: string;
  /** Only generate permutations for the specified modifiers (by default, generate all permutations) */
  contexts?: { [key in keyof T]: T[keyof T][] };
  /** Only include specified properties as part of token output. */
  properties?: (keyof TokenNormalized)[];
}
type Resolver<T extends Record<string, string>> = (input: T) => TokenNormalizedSet;
declare const FILE_HEADER = "/** ------------------------------------------\n *  Autogenerated by \u26CB Terrazzo. DO NOT EDIT!\n * ------------------------------------------- */";
declare const TYPE_MAP: Record<Token['$type'], string>;
//#endregion
//#region src/build.d.ts
declare function buildJS({
  resolver,
  properties,
  logger,
  contexts
}: {
  resolver: Resolver$1;
  properties: Set<keyof TokenNormalized>;
  contexts?: Record<string, string[]>;
  logger: Logger;
}): {
  code: string;
  typeMap: Record<string, Token['$type']>;
};
declare function buildDTS({
  resolver,
  contexts,
  properties,
  typeMap
}: {
  resolver: Resolver$1;
  contexts?: Record<string, string[]>;
  properties: Set<keyof TokenNormalized>;
  typeMap: Record<string, Token['$type']>;
}): string;
//#endregion
//#region src/index.d.ts
declare function pluginJS({
  filename,
  properties: userProperties,
  contexts
}?: JSPluginOptions): Plugin;
//#endregion
export { DEFAULT_PROPERTIES, FILE_HEADER, FORMAT_ID, JSPluginOptions, Resolver, TYPE_MAP, buildDTS, buildJS, pluginJS as default };
//# sourceMappingURL=index.d.ts.map