import * as t from '@rekajs/types'; import { Extension } from './extension'; export type ExtensionStateDefinition = Record; type Require = T & { [P in K]-?: T[P]; }; export interface ExtensionConfig { key: string; state: S; init: (extension: Extension>) => void; dispose: (extension: Extension>) => void; fromJSON: (state: any) => S; } export type ExtensionStateFromDefinition = D['state']; export declare class ExtensionDefinition { key: string; globals: Record; components: t.Component[]; state: S; fromJSON: (state: any) => S; init: (extension: Extension>) => void; dispose: (extension: Extension>) => void; constructor(config: Require>, 'key'>); } export declare const createExtension: (config: Require>, "key">) => ExtensionDefinition; export {};