/**
 * Properties for BEM modifiers.
 *
 * @internal
 */
export type StyleProps = Record<string, string | boolean>;
/**
 * Utility function for creating BEM class names.
 *
 * - b(props) - creates a class names for BEM block
 * - e(element, props) - creates a class name for BEM element
 *
 * Example usage:
 *
 * const \{ b, e \} = bem("gd-ui-button");
 *
 * b(\{ size: "large" \}) === "gd-ui-button gd-ui-button--size-large"
 *
 * b(\{ isSelected: true \}) === "gd-ui-button gd-ui-button--isSelected"
 *
 * e("icon", \{ size: "large" \}) === "gd-ui-button__icon gd-ui-button__icon--size-large"
 *
 * e("icon", \{ isDisabled: true \}) === "gd-ui-button__icon gd-ui-button__icon--isDisabled"
 *
 * @internal
 */
export declare function bemFactory<TPrefix extends string>(block: `${TPrefix}-${string}`): {
    /**
     * Creates a class names for BEM block.
     *
     * Example usage:
     *
     * const \{ b, e \} = bem("gd-ui-button");
     *
     * b(\{ size: "large" \}) === "gd-ui-button gd-ui-button--size-large"
     *
     * b(\{ isSelected: true \}) === "gd-ui-button gd-ui-button--isSelected"
     */
    b: (props?: StyleProps) => string;
    /**
     * Creates a class name for BEM element.
     *
     * Example usage:
     *
     * const \{ b, e \} = bem("gd-ui-button");
     *
     * e("icon", \{ size: "large" \}) === "gd-ui-button__icon gd-ui-button__icon--size-large"
     *
     * e("icon", \{ isDisabled: true \}) === "gd-ui-button__icon gd-ui-button__icon--isDisabled"
     */
    e: (element: string, props?: StyleProps) => string;
};
/**
 * Utility function for creating BEM class names in \@gooddata/sdk-ui-kit.
 * If you need to use BEM in other libraries, see this function implementation.
 *
 * - b(props) - creates a class names for BEM block
 * - e(element, props) - creates a class name for BEM element
 *
 * Example usage:
 *
 * const \{ b, e \} = bem("gd-ui-button");
 *
 * b(\{ size: "large" \}) === "gd-ui-button gd-ui-button--size-large"
 *
 * b(\{ isSelected: true \}) === "gd-ui-button gd-ui-button--isSelected"
 *
 * e("icon", \{ size: "large" \}) === "gd-ui-button__icon gd-ui-button__icon--size-large"
 *
 * e("icon", \{ isDisabled: true \}) === "gd-ui-button__icon gd-ui-button__icon--isDisabled"
 *
 * @internal
 */
export declare const bem: (block: `gd-ui-kit-${string}`) => {
    /**
     * Creates a class names for BEM block.
     *
     * Example usage:
     *
     * const \{ b, e \} = bem("gd-ui-button");
     *
     * b(\{ size: "large" \}) === "gd-ui-button gd-ui-button--size-large"
     *
     * b(\{ isSelected: true \}) === "gd-ui-button gd-ui-button--isSelected"
     */
    b: (props?: StyleProps) => string;
    /**
     * Creates a class name for BEM element.
     *
     * Example usage:
     *
     * const \{ b, e \} = bem("gd-ui-button");
     *
     * e("icon", \{ size: "large" \}) === "gd-ui-button__icon gd-ui-button__icon--size-large"
     *
     * e("icon", \{ isDisabled: true \}) === "gd-ui-button__icon gd-ui-button__icon--isDisabled"
     */
    e: (element: string, props?: StyleProps) => string;
};
//# sourceMappingURL=bem.d.ts.map