type SCHEMA = {
    'kol-icon': {
        elements: {
            icon: {
                modifiers: null;
            };
        };
        modifiers: null;
    };
};
declare const bem: {
    <BlockName extends "kol-icon", ElementName extends keyof NonNullable<SCHEMA[BlockName]["elements"]>>(blockName: BlockName, blockModifiersOrElementName?: ElementName | ((SCHEMA[BlockName]["modifiers"] extends infer T ? T extends SCHEMA[BlockName]["modifiers"] ? T extends Set<infer U> ? U : never : never : never) extends never ? undefined : Partial<Record<SCHEMA[BlockName]["modifiers"] extends infer T_1 ? T_1 extends SCHEMA[BlockName]["modifiers"] ? T_1 extends Set<infer U> ? U : never : never : never, boolean>>) | undefined, elementModifiers?: ((NonNullable<SCHEMA[BlockName]["elements"]>[ElementName]["modifiers"] extends infer T_2 ? T_2 extends NonNullable<SCHEMA[BlockName]["elements"]>[ElementName]["modifiers"] ? T_2 extends Set<infer U> ? U : never : never : never) extends never ? undefined : Partial<Record<NonNullable<SCHEMA[BlockName]["elements"]>[ElementName]["modifiers"] extends infer T_3 ? T_3 extends NonNullable<SCHEMA[BlockName]["elements"]>[ElementName]["modifiers"] ? T_3 extends Set<infer U> ? U : never : never : never, boolean>>) | undefined): string;
    forBlock<BlockName extends "kol-icon">(blockName: BlockName): {
        <ElementName extends keyof NonNullable<SCHEMA[BlockName]["elements"]>>(elementNameOrBlockModifiers?: ElementName | ((SCHEMA[BlockName]["modifiers"] extends infer T ? T extends SCHEMA[BlockName]["modifiers"] ? T extends Set<infer U> ? U : never : never : never) extends never ? undefined : Partial<Record<SCHEMA[BlockName]["modifiers"] extends infer T_1 ? T_1 extends SCHEMA[BlockName]["modifiers"] ? T_1 extends Set<infer U> ? U : never : never : never, boolean>>) | undefined, elementModifiers?: ((NonNullable<SCHEMA[BlockName]["elements"]>[ElementName]["modifiers"] extends infer T_2 ? T_2 extends NonNullable<SCHEMA[BlockName]["elements"]>[ElementName]["modifiers"] ? T_2 extends Set<infer U> ? U : never : never : never) extends never ? undefined : Partial<Record<NonNullable<SCHEMA[BlockName]["elements"]>[ElementName]["modifiers"] extends infer T_3 ? T_3 extends NonNullable<SCHEMA[BlockName]["elements"]>[ElementName]["modifiers"] ? T_3 extends Set<infer U> ? U : never : never : never, boolean>>) | undefined): string;
        forElement: <ElementName extends keyof NonNullable<SCHEMA[BlockName]["elements"]>>(elementName: ElementName) => (elementModifiers?: ((NonNullable<SCHEMA[BlockName]["elements"]>[ElementName]["modifiers"] extends infer T ? T extends NonNullable<SCHEMA[BlockName]["elements"]>[ElementName]["modifiers"] ? T extends Set<infer U> ? U : never : never : never) extends never ? undefined : Partial<Record<NonNullable<SCHEMA[BlockName]["elements"]>[ElementName]["modifiers"] extends infer T_1 ? T_1 extends NonNullable<SCHEMA[BlockName]["elements"]>[ElementName]["modifiers"] ? T_1 extends Set<infer U> ? U : never : never : never, boolean>>) | undefined) => string;
    };
} & {
    forBlock: <BlockName extends "kol-icon">(blockName: BlockName) => {
        <ElementName extends keyof NonNullable<SCHEMA[BlockName]["elements"]>>(elementNameOrBlockModifiers?: ElementName | ((SCHEMA[BlockName]["modifiers"] extends infer T ? T extends SCHEMA[BlockName]["modifiers"] ? T extends Set<infer U> ? U : never : never : never) extends never ? undefined : Partial<Record<SCHEMA[BlockName]["modifiers"] extends infer T_1 ? T_1 extends SCHEMA[BlockName]["modifiers"] ? T_1 extends Set<infer U> ? U : never : never : never, boolean>>) | undefined, elementModifiers?: ((NonNullable<SCHEMA[BlockName]["elements"]>[ElementName]["modifiers"] extends infer T_2 ? T_2 extends NonNullable<SCHEMA[BlockName]["elements"]>[ElementName]["modifiers"] ? T_2 extends Set<infer U> ? U : never : never : never) extends never ? undefined : Partial<Record<NonNullable<SCHEMA[BlockName]["elements"]>[ElementName]["modifiers"] extends infer T_3 ? T_3 extends NonNullable<SCHEMA[BlockName]["elements"]>[ElementName]["modifiers"] ? T_3 extends Set<infer U> ? U : never : never : never, boolean>>) | undefined): string;
        forElement: <ElementName extends keyof NonNullable<SCHEMA[BlockName]["elements"]>>(elementName: ElementName) => (elementModifiers?: ((NonNullable<SCHEMA[BlockName]["elements"]>[ElementName]["modifiers"] extends infer T ? T extends NonNullable<SCHEMA[BlockName]["elements"]>[ElementName]["modifiers"] ? T extends Set<infer U> ? U : never : never : never) extends never ? undefined : Partial<Record<NonNullable<SCHEMA[BlockName]["elements"]>[ElementName]["modifiers"] extends infer T_1 ? T_1 extends NonNullable<SCHEMA[BlockName]["elements"]>[ElementName]["modifiers"] ? T_1 extends Set<infer U> ? U : never : never : never, boolean>>) | undefined) => string;
    };
};
declare const BEM: SCHEMA;
declare const BEM_CLASS_ICON: string;
declare const BEM_CLASS_ICON__ICON: string;
export { BEM_CLASS_ICON, BEM_CLASS_ICON__ICON, BEM as BEM_ICON, bem as genBemAlert };
