export type Styling<Props extends {}> = ClassNames | ClassNamesMapping<Props>;
export type ClassNames = ClassNamesArray | string | null | undefined | 0 | false;
type ClassNamesArray = Array<ClassNames>;
type ClassNamesMapping<Props extends {}> = Partial<{
    [K in keyof Props]: ClassNames | Partial<{
        $on: ClassNames;
        $off: ClassNames;
    }> | (Required<Props>[K] extends string ? Partial<Record<string & Required<Props>[K], ClassNames>> : never);
}>;
export declare function createStyling<Props extends {}>(...styles: Styling<Required<Props>>[]): (config?: Partial<Props>, ...extraClasses: ClassNames[]) => string;
export {};
