import { Command } from "commander";

//#region src/FeatureFlags/FeatureFlags.d.ts
interface FeatureFlag {
  name: string;
  description: string;
}
type FlagTypes = string | boolean;
/**
* Feature Flags are used to turn on/off features.
* These are primarily used before a feature has been fully released.
*/
declare class FeatureFlags {
  private flags;
  private flagValues;
  constructor(flags?: FeatureFlag[]);
  register(flag: FeatureFlag): this;
  register(name: string, description: string): this;
  registerFeatures(flags: FeatureFlag[]): this;
  getFlag(flag: string): FlagTypes | undefined;
  getFlagBool(flag: string): boolean | undefined;
  setFlag(flag: string, value?: FlagTypes): this;
  getFlagInfo(flag: string): FeatureFlag | undefined;
  getFlags(): FeatureFlag[];
  getFlagValues(): Map<string, FlagTypes>;
  reset(): this;
  help(): string;
  fork(): FeatureFlags;
}
//#endregion
//#region src/app.d.ts
declare function run(program: Command, argv: string[], flags?: FeatureFlags): Promise<void>;
//#endregion
export { run };
//# sourceMappingURL=app.d.mts.map