import { CssStatesType, StateVariantType, ManagedStateScopeInput } from '../../../types/ui.type';
/**
 * The `StateFormatFacade` class in TypeScript provides a method to format different types of
 * state variants based on a specified flag.
 */
declare class StateFormatFacade {
  /**
   * The function `format` takes in an input and a flag, then formats the input based on the flag
   * provided.
   *
   * @param {StateVariantType} input - The `input` parameter in the `format` function is of type
   * `StateVariantType<ManagedStateScopeInput[Flag], State>`. This means that it expects an input value
   * that corresponds to the specified flag and state. The `Flag` type is a key of
   * `ManagedStateScopeInput
   * @param {keyof ManagedStateScopeInput} flag - The `flag` parameter in the `format` function is a key of the
   * `ManagedStateScopeInput` type. It is used to determine which formatting logic to apply based on the
   * specific flag provided. The function then switches on the flag value to select the appropriate
   * formatting logic for that particular flag.
   * @returns {string} The `format` function takes in an input of type
   * `StateVariantType<ManagedStateScopeInput[Flag], State>` and a flag of type `Flag`. It then switches
   * on the flag value and returns a formatted string based on the flag value. The return value depends
   * on the flag value:
   */
  format<Flag extends keyof ManagedStateScopeInput, State extends CssStatesType>(input: StateVariantType<ManagedStateScopeInput[Flag], State>, flag: Flag): string;
}
declare const _default: StateFormatFacade;
export default _default;
