import { GroupedTag, Sheet, SheetOptions } from './types'; type SheetConstructorArgs = { isServer?: boolean; useCSSOMInjection?: boolean; target?: HTMLElement; }; type GlobalStylesAllocationMap = { [key: string]: number; }; type NamesAllocationMap = Map>; /** Contains the main stylesheet logic for stringification and caching */ export default class StyleSheet implements Sheet { gs: GlobalStylesAllocationMap; names: NamesAllocationMap; options: SheetOptions; server: boolean; tag?: GroupedTag; /** Register a group ID to give it an index */ static registerId(id: string): number; constructor(options?: SheetConstructorArgs, globalStyles?: GlobalStylesAllocationMap, names?: NamesAllocationMap); reconstructWithOptions(options: SheetConstructorArgs, withNames?: boolean): StyleSheet; allocateGSInstance(id: string): number; /** Lazily initialises a GroupedTag for when it's actually needed */ getTag(): GroupedTag; /** Check whether a name is known for caching */ hasNameForId(id: string, name: string): boolean; /** Mark a group's name as known for caching */ registerName(id: string, name: string): void; /** Insert new rules which also marks the name as known */ insertRules(id: string, name: string, rules: string | string[]): void; /** Clears all cached names for a given group ID */ clearNames(id: string): void; /** Clears all rules for a given group ID */ clearRules(id: string): void; /** Clears the entire tag which deletes all rules but not its names */ clearTag(): void; /** Outputs the current sheet as a CSS string with markers for SSR */ toString(): string; } export {};