import * as t from '@babel/types'; import type { Metadata } from '../types'; export declare const EXTENDED_SELECTORS_KEY = "selectors"; type ObjectKeyWithLiteralValue = t.Identifier | t.StringLiteral; export declare const objectKeyIsLiteralValue: (key: t.ObjectProperty['key']) => key is ObjectKeyWithLiteralValue; export declare const getKeyValue: (key: ObjectKeyWithLiteralValue) => string; export declare const isAtRuleObject: (key: ObjectKeyWithLiteralValue) => key is ObjectKeyWithLiteralValue; export declare const isPlainSelector: (selector: string) => boolean; export declare const hasExtendedSelectorsKey: (property: t.ObjectProperty) => boolean; export declare function errorIfNotValidObjectProperty(property: t.ObjectExpression['properties'][number], meta: Metadata): asserts property is t.ObjectProperty; export declare enum ErrorMessages { NO_TAGGED_TEMPLATE = "cssMap function cannot be used as a tagged template expression.", NUMBER_OF_ARGUMENT = "cssMap function can only receive one argument.", ARGUMENT_TYPE = "cssMap function can only receive an object.", AT_RULE_VALUE_TYPE = "Value of at-rule block must be an object.", SELECTORS_BLOCK_VALUE_TYPE = "Value of `selectors` key must be an object.", DEFINE_MAP = "CSS Map must be declared at the top-most scope of the module.", NO_SPREAD_ELEMENT = "Spread element is not supported in CSS Map.", NO_OBJECT_METHOD = "Object method is not supported in CSS Map.", STATIC_VARIANT_OBJECT = "The variant object must be statically defined.", DUPLICATE_AT_RULE = "Cannot declare an at-rule more than once in CSS Map.", DUPLICATE_SELECTOR = "Cannot declare a selector more than once in CSS Map.", DUPLICATE_SELECTORS_BLOCK = "Duplicate `selectors` key found in cssMap; expected either zero `selectors` keys or one.", STATIC_PROPERTY_KEY = "Property key may only be a static string.", SELECTOR_BLOCK_WRONG_PLACE = "`selector` key was defined in the wrong place.", USE_SELECTORS_WITH_AMPERSAND = "This selector is applied to the parent element, and so you need to specify the ampersand symbol (&) directly before it. For example, `:hover` should be written as `&:hover`.", USE_VARIANT_OF_CSS_MAP = "You must use the variant of a CSS Map object (eg. `styles.root`), not the root object itself, eg. `styles`." } export declare const createErrorMessage: (message: string) => string; export {};