import { type Registry } from '@effect-rx/rx-react';
import { type Schema } from 'effect';
import { type FC, type PropsWithChildren } from 'react';
import { type ExecutableTool } from '@dxos/ai';
import { type GraphBuilder, type BuilderExtensions } from '@dxos/app-graph';
import { type ArtifactDefinition } from '@dxos/blueprints';
import { type Space } from '@dxos/client-protocol';
import { type FunctionDefinition } from '@dxos/functions';
import { type RootSettingsStore } from '@dxos/local-storage';
import { type AnchoredTo } from '@dxos/schema';
import { type FileInfo } from './file';
import { type NodeSerializer } from './graph';
import { type SurfaceDefinition } from './surface';
import { type PluginManager } from '../core';
import { type AnyIntentResolver, type IntentContext } from '../plugin-intent';
export declare namespace Capabilities {
    export const Null: import("..").InterfaceDef<null>;
    export const PluginManager: import("..").InterfaceDef<PluginManager>;
    export const RxRegistry: import("..").InterfaceDef<Registry.Registry>;
    export type ReactContext = Readonly<{
        id: string;
        dependsOn?: string[];
        context: FC<PropsWithChildren>;
    }>;
    export const ReactContext: import("..").InterfaceDef<Readonly<{
        id: string;
        dependsOn?: string[];
        context: FC<PropsWithChildren>;
    }>>;
    export type ReactRoot = Readonly<{
        id: string;
        root: FC<PropsWithChildren>;
    }>;
    export const ReactRoot: import("..").InterfaceDef<Readonly<{
        id: string;
        root: FC<PropsWithChildren>;
    }>>;
    export type ReactSurface = SurfaceDefinition | readonly SurfaceDefinition[];
    export const ReactSurface: import("..").InterfaceDef<ReactSurface>;
    export type IntentResolver = AnyIntentResolver | readonly AnyIntentResolver[];
    export const IntentResolver: import("..").InterfaceDef<IntentResolver>;
    export const IntentDispatcher: import("..").InterfaceDef<IntentContext>;
    export type Layout = Readonly<{
        mode: string;
        dialogOpen: boolean;
        sidebarOpen: boolean;
        complementarySidebarOpen: boolean;
        /**
         * The id of the active workspace, where a workspace is a set of active items.
         */
        workspace: string;
        /**
         * Identifiers of items which are currently active in the application.
         */
        active: string[];
        /**
         * Identifiers of items which were previously active in the application.
         */
        inactive: string[];
        /**
         * Identifier of the item which should be scrolled into view.
         */
        scrollIntoView: string | undefined;
    }>;
    export const Layout: import("..").InterfaceDef<Readonly<{
        mode: string;
        dialogOpen: boolean;
        sidebarOpen: boolean;
        complementarySidebarOpen: boolean;
        /**
         * The id of the active workspace, where a workspace is a set of active items.
         */
        workspace: string;
        /**
         * Identifiers of items which are currently active in the application.
         */
        active: string[];
        /**
         * Identifiers of items which were previously active in the application.
         */
        inactive: string[];
        /**
         * Identifier of the item which should be scrolled into view.
         */
        scrollIntoView: string | undefined;
    }>>;
    export const Translations: import("..").InterfaceDef<readonly {
        readonly [x: string]: {
            readonly [x: string]: string | {
                readonly [x: string]: any;
            };
        };
    }[]>;
    export const AppGraph: import("..").InterfaceDef<Readonly<Pick<GraphBuilder, "graph" | "explore">>>;
    export const AppGraphBuilder: import("..").InterfaceDef<BuilderExtensions>;
    export const AppGraphSerializer: import("..").InterfaceDef<NodeSerializer[]>;
    export const SettingsStore: import("..").InterfaceDef<RootSettingsStore>;
    export type Settings = {
        prefix: string;
        schema: Schema.Schema.All;
        value?: Record<string, any>;
    };
    export const Settings: import("..").InterfaceDef<Settings>;
    export type Metadata = Readonly<{
        id: string;
        metadata: Record<string, any>;
    }>;
    export const Metadata: import("..").InterfaceDef<Readonly<{
        id: string;
        metadata: Record<string, any>;
    }>>;
    export const Tools: import("..").InterfaceDef<ExecutableTool[]>;
    export const ArtifactDefinition: import("..").InterfaceDef<ArtifactDefinition>;
    export const Functions: import("..").InterfaceDef<FunctionDefinition<any, any>[]>;
    export type FileUploader = (file: File, space: Space) => Promise<FileInfo | undefined>;
    export const FileUploader: import("..").InterfaceDef<FileUploader>;
    type AnchorSort = {
        key: string;
        sort: (anchorA: AnchoredTo, anchorB: AnchoredTo) => number;
    };
    export const AnchorSort: import("..").InterfaceDef<AnchorSort>;
    export {};
}
//# sourceMappingURL=capabilities.d.ts.map