type SCHEMA = {
    'kol-alert': {
        elements: {
            container: {
                modifiers: null;
            };
            icon: {
                modifiers: null;
            };
            heading: {
                modifiers: Set<'h0' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'>;
            };
            content: {
                modifiers: null;
            };
            closer: {
                modifiers: null;
            };
        };
        modifiers: Set<'hasCloser' | 'type-default' | 'type-error' | 'type-info' | 'type-success' | 'type-warning' | 'variant-card' | 'variant-msg'>;
    };
};
declare const bem: {
    <BlockName extends "kol-alert", 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-alert">(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-alert">(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_ALERT__CLOSER: string;
declare const BEM_CLASS_ALERT__CONTENT: string;
declare const BEM_CLASS_ALERT__ICON: string;
export { BEM as BEM_ALERT, BEM_CLASS_ALERT__CLOSER, BEM_CLASS_ALERT__CONTENT, BEM_CLASS_ALERT__ICON, bem as genBemAlert };
