import type { ClassNamesBaseType } from '../types';
declare class ClassUtility {
    /**
       * This utility process all arguments to be a className as string or string[].
       * * Same goal as classNames npm package just different method including types
       * @param {boolean} asString Default value: true. If we want to return a string of array, set it false
       * @param {ClassNamesBaseType[]} classes Accepted types:
       * * String: 'class1 class2'
      //  * * Array: ['class1','class2 class5',{ class3: false, class4: true }]
       * * Object: { class1: false, class2: true }
       * * Undefined, Null, False, Function: these will be filtered
       * @returns {string | string[]} string OR array of string
       * @example
       * // returns 'class1 class2 class5 class4'
       * composeClasses(true, 'class1','class2 class5',{ class3: false, class4: true }) as string
       * // return ['class1','class2','class5','class4']
       * composeClasses(false, 'class1','class2 class5',{ class3: false, class4: true }) as string[]
       */
    composeClasses(asString?: boolean, ...classes: ClassNamesBaseType[]): string | string[];
    getClassesStrFromModuleCss(css: {
        readonly [key: string]: string;
    }, ...classes: ClassNamesBaseType[]): string;
}
declare const inst: ClassUtility;
export default inst;
export declare const _cx: (css?: {
    readonly [key: string]: string;
}) => (...classes: ClassNamesBaseType[]) => string;
