import { BreakpointsForPrefixType, ManagedResponsiveScopeInput, ResponsiveType } from '../../../types/ui.type';
import { ResponsiveFormatter } from './responsive-formatter';
import { Nullable } from '../../../types/general';
/**
 * An abstract class for format {@link ManagedResponsiveScopeInput[Flag]} to CSS class string
 */
export declare abstract class ResponsiveClassStringFormatter<Flag extends keyof ManagedResponsiveScopeInput> implements ResponsiveFormatter<ManagedResponsiveScopeInput[Flag], string> {
  /**
   * > It takes a `ResponsiveType<ManagedResponsiveScopeInput[Flag]>` and returns a string
   *
   * @typedef Flag key of ManagedResponsiveScopeInput
   * @param {ResponsiveType<ManagedResponsiveScopeInput[Flag]>} input - ManagedResponsiveScopeInput[Flag]
   * @returns {string} - CSS class string.
   */
  format(input: ResponsiveType<ManagedResponsiveScopeInput[Flag]>): string;
  abstract formatToken(input: ManagedResponsiveScopeInput[Flag], breakpoint?: Nullable<BreakpointsForPrefixType>): string;
}
