///
export declare type TokenType = 'array' | 'attribute' | 'attributePair' | 'boolean' | 'nil' | 'number' | 'object' | 'punctuation' | 'quotation' | 'root' | 'string' | 'unquotedAttribute';
export declare type NodeType = 'array' | 'attributePair' | 'boolean' | 'nil' | 'number' | 'object' | 'string';
export declare type ObjectKeySorter = (keyA: string, keyB: string, parent: Record) => number;
export declare type TokenMachine = (token: TokenType, content?: React.ReactNode, as?: string) => JSX.Element;
export declare type ItemKeyGenerator = (item: unknown, basePath: string, index: number) => string;
export declare type NodeWrapper = React.ComponentType<{
path: string;
type: NodeType;
}>;
export declare type JasonStyles = Partial>;
export declare type JasonClasses = Partial>;
export interface EsModuleJasonTheme {
__esModule: true;
default: JasonTheme;
}
export interface JasonTheme {
styles?: JasonStyles;
classes?: JasonClasses;
}
export interface JasonContextInstance {
token: TokenMachine;
getItemKey: ItemKeyGenerator;
quoteAttributes: boolean;
sortKeys: false | ObjectKeySorter;
nodeWrapper?: NodeWrapper;
}