import { BuildRunnerResult, Config, ConfigInit, Logger } from "@terrazzo/parser";

//#region src/shared.d.ts
declare const cwd: URL;
declare const DEFAULT_CONFIG_PATH: URL;
declare const DEFAULT_TOKENS_PATH: URL;
type Command = 'build' | 'check' | 'help' | 'init' | 'version';
declare const GREEN_CHECK: string;
interface Flags {
  /** --config, -c */
  config?: string;
  /** --out, -o */
  out?: string;
  /** --help */
  help?: boolean;
  /** --no-lint */
  'no-lint'?: boolean;
  /** --watch, -w */
  watch?: boolean;
  /** --version */
  version?: boolean;
}
interface LoadConfigOptions {
  cmd: Command;
  flags: Flags;
  logger: Logger;
}
/** Load config */
declare function loadConfig({
  cmd,
  flags,
  logger
}: LoadConfigOptions): Promise<{
  config: ConfigInit;
  configPath: string | undefined;
}>;
/** load tokens */
declare function loadTokens(tokenPaths: URL[], {
  logger
}: {
  logger: Logger;
}): Promise<{
  filename: URL;
  src: string;
}[] | undefined>;
/** Print error */
declare function printError(message: string): void;
/** Print success */
declare function printSuccess(message: string, startTime?: number): void;
/** Resolve config */
declare function resolveConfig(filename?: string): string | undefined;
/** Resolve tokens.json path (for lint command) */
declare function resolveTokenPath(filename: string, {
  logger
}: {
  logger: Logger;
}): URL;
/** Print time elapsed */
declare function time(start: number): string;
//#endregion
//#region src/build.d.ts
interface BuildOptions {
  flags: Flags;
  config: ConfigInit;
  configPath: string;
  logger: Logger;
}
/** tz build */
declare function buildCmd({
  config,
  configPath,
  flags,
  logger
}: BuildOptions): Promise<void>;
/** Write files */
declare function writeFiles(result: BuildRunnerResult, {
  config,
  logger
}: {
  config: ConfigInit;
  logger: Logger;
}): void;
//#endregion
//#region src/check.d.ts
interface CheckOptions {
  /** positional CLI args */
  positionals: string[];
  config: ConfigInit;
  logger: Logger;
}
/** tz check */
declare function checkCmd({
  config,
  logger,
  positionals
}: CheckOptions): Promise<void>;
//#endregion
//#region src/format.d.ts
interface NormalizeOptions {
  logger: Logger;
  output: URL;
}
declare function formatCmd(filename: string, {
  logger,
  output
}: NormalizeOptions): Promise<void>;
//#endregion
//#region src/help.d.ts
/** Show help */
declare function helpCmd(): void;
//#endregion
//#region src/import/figma/index.d.ts
interface importFromFigmaOptions {
  url: string;
  logger: Logger;
  /** Grab unpublished Styles/Variables @default false */
  unpublished?: boolean;
  skipStyles?: boolean;
  skipVariables?: boolean;
  /** RegEx for overriding Variable types with fontFamily tokens */
  fontFamilyNames?: string;
  /** RegEx for overriding Variable types with fontWeight tokens */
  fontWeightNames?: string;
  /** RegEx for overriding Variable types with number tokens */
  numberNames?: string;
}
interface FigmaOutput {
  variableCount: number;
  styleCount: number;
  /** The Resolver JSON, in object format (could be any shape) */
  code: Record<string, any>;
}
declare function importFromFigma({
  url,
  logger,
  unpublished,
  skipStyles,
  skipVariables,
  fontFamilyNames,
  fontWeightNames,
  numberNames
}: importFromFigmaOptions): Promise<FigmaOutput>;
/** Is this a valid URL, and one belonging to a Figma file? */
declare function isFigmaPath(url: string): boolean;
//#endregion
//#region src/import/index.d.ts
interface ImportCmdOptions {
  flags: {
    /** The output file @default stdout */output?: string;
  } & Record<string, any>;
  positionals: string[];
  logger: Logger;
}
declare function importCmd({
  flags,
  positionals,
  logger
}: ImportCmdOptions): Promise<void>;
//#endregion
//#region src/init.d.ts
interface InitOptions {
  logger: Logger;
}
declare function initCmd({
  logger
}: InitOptions): Promise<void>;
//#endregion
//#region src/lab.d.ts
interface LabBuildOptions {
  flags: Flags;
  config: ConfigInit;
  configPath: string;
  logger: Logger;
}
declare function labCmd({
  config,
  logger
}: LabBuildOptions): Promise<void>;
//#endregion
//#region src/version.d.ts
declare function versionCmd(): void;
//#endregion
//#region src/index.d.ts
declare function defineConfig(config: Config): ConfigInit;
//#endregion
export { BuildOptions, CheckOptions, Command, DEFAULT_CONFIG_PATH, DEFAULT_TOKENS_PATH, FigmaOutput, Flags, GREEN_CHECK, ImportCmdOptions, InitOptions, LabBuildOptions, LoadConfigOptions, NormalizeOptions, buildCmd, checkCmd, cwd, defineConfig, formatCmd, helpCmd, importCmd, importFromFigma, importFromFigmaOptions, initCmd, isFigmaPath, labCmd, loadConfig, loadTokens, printError, printSuccess, resolveConfig, resolveTokenPath, time, versionCmd, writeFiles };
//# sourceMappingURL=index.d.ts.map