import { B as BemBlocks, a as BemSchema } from './shared/typed-bem.DsSxeKVt.js';

type KeysOfSet<T> = T extends Set<infer U> ? U : never;
declare function generateBemClassNames<B extends BemBlocks<BemSchema>>(): <BlockName extends keyof B, ElementName extends keyof NonNullable<B[BlockName]["elements"]>>(blockName: BlockName, blockModifiersOrElementName?: (KeysOfSet<B[BlockName]["modifiers"]> extends never ? undefined : Partial<Record<KeysOfSet<B[BlockName]["modifiers"]>, boolean>>) | ElementName, elementModifiers?: KeysOfSet<NonNullable<B[BlockName]["elements"]>[ElementName]["modifiers"]> extends never ? undefined : Partial<Record<KeysOfSet<NonNullable<B[BlockName]["elements"]>[ElementName]["modifiers"]>, boolean>>) => string;

export { generateBemClassNames };
