import { Factory, CssRule, CssStyleCollection, CssVars } from '@cssfn/core';
export type ToggleNude = boolean | null;
export interface NudibleVars {
    /**
     * the nudible preference.
     */
    nudePr: any;
    /**
     * the nude switching function.
     */
    nudeSw: any;
}
export declare const ifNude: (styles: CssStyleCollection) => CssRule;
export declare const ifNotNude: (styles: CssStyleCollection) => CssRule;
export interface NudibleStuff {
    nudibleRule: Factory<CssRule>;
    nudibleVars: CssVars<NudibleVars>;
}
/**
 * Uses a toggleable nudeification (removes background, border & padding).
 * @param nudeDefinition A callback to create a nudeification rules for each toggle state.
 * @returns A `NudibleStuff` represents the nudeification rules.
 */
export declare const usesNudible: (nudeDefinition?: ((toggle: ToggleNude) => CssStyleCollection) | null) => NudibleStuff;
/**
 * Defines a nudeification preference rules for the given `toggle` state.
 * @param toggle `true` to activate the nudeification -or- `false` to deactivate -or- `null` to remove previously declared `defineNude`.
 * @returns A `CssRule` represents a nudeification rules for the given `toggle` state.
 */
export declare const defineNude: (toggle: ToggleNude) => CssRule;
/**
 * Sets the current nudeification state by the given `toggle` state.
 * @param toggle `true` to activate the nudeification -or- `false` to deactivate -or- `null` to remove previously declared `setNude`.
 * @returns A `CssRule` represents a nudeification rules for the given `toggle` state.
 */
export declare const setNude: (toggle: ToggleNude) => CssRule;
export interface NudibleProps {
    nude?: boolean;
}
export declare const useNudible: ({ nude }: NudibleProps) => {
    class: string | null;
};
