import { ReactElement } from 'react';
import { AbstractNode, IconDefinition } from './interface';
import { CustomIconComponentProps } from './Icon';
export declare function warning(valid: boolean, message: string): void;
export declare function isIconDefinition(target: any): target is IconDefinition;
export declare function normalizeAttrs(attrs?: Attrs): Attrs;
export interface Attrs {
    [key: string]: string;
}
export declare function generate(node: AbstractNode, key: string, rootProps?: {
    [key: string]: unknown;
} | false): ReactElement;
export declare function getSecondaryColor(primaryColor: string): string;
export declare function normalizeTwoToneColors(twoToneColor: string | [string, string] | undefined): string[];
export declare const svgBaseProps: CustomIconComponentProps & {
    'aria-hidden': boolean | 'false' | 'true';
    focusable: boolean | 'auto' | 'false' | 'true';
};
export declare const iconStyles = "\n.c7nicon {\n  display: inline-block;\n  color: inherit;\n  font-style: normal;\n  line-height: 0;\n  text-align: center;\n  text-transform: none;\n  vertical-align: -0.125em;\n  text-rendering: optimizeLegibility;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n\n.c7nicon > * {\n  line-height: 1;\n}\n\n.c7nicon svg {\n  display: inline-block;\n}\n\n.c7nicon::before {\n  display: none;\n}\n\n.c7nicon .c7nicon-icon {\n  display: block;\n}\n\n.c7nicon[tabindex] {\n  cursor: pointer;\n}\n\n.c7nicon-spin::before,\n.c7nicon-spin {\n  display: inline-block;\n  -webkit-animation: loadingCircle 1s infinite linear;\n  animation: loadingCircle 1s infinite linear;\n}\n\n@-webkit-keyframes loadingCircle {\n  100% {\n    -webkit-transform: rotate(360deg);\n    transform: rotate(360deg);\n  }\n}\n\n@keyframes loadingCircle {\n  100% {\n    -webkit-transform: rotate(360deg);\n    transform: rotate(360deg);\n  }\n}\n";
export declare const useInsertStyles: (styleStr?: string) => void;
