type Options = { /** * A delimiter to split a BEM element. Defaults to `"__"`. */ elementDelimiter: string; /** * A delimiter to split a BEM modifier. Defaults to `"--"`. */ modifierDelimiter: string; /** * A namespace to prepend a BEM block. Defaults to `""`. */ namespace: string | string[]; /** * A delimiter to split a namespace. Defaults to `"-"`. */ namespaceDelimiter: string; /** * A flag to force a BEM convention. Defaults to `true`. */ strict: boolean; }; type PartialOptions = Partial; /** * Set up the default options. * * @param options - Options to control a generated class name. */ export declare function setup({ elementDelimiter, modifierDelimiter, namespace, namespaceDelimiter, strict, }: PartialOptions): void; /** * BEM modifiers. */ type Modifiers = Record | Array; /** * A function to generate a BEM class name. * * @param elementOrModifiers - A BEM element or modifiers. * @param modifiers - BEM modifiers. * @returns A generated class name. */ type BemBlockFunction = (elementOrModifiers?: string | Modifiers, modifiers?: Modifiers) => string; /** * Creates a function to generate a BEM class name. * * @param block - A BEM block name. * @param options - Options to control a generated class name. * @returns A function to generate a BEM class name. */ export default function bem(block: string, options?: PartialOptions): BemBlockFunction; export {};