import { EditorView } from '@codemirror/view';
import { Facet, type Extension } from '@codemirror/state';
interface SidebarPanelSpec {
    id: string;
    create: (view: EditorView) => HTMLElement;
    update?: (view: EditorView) => void;
    destroy?: (view: EditorView) => void;
}
type DockPosition = 'left' | 'right';
interface SidebarOptions {
    width?: string;
    backgroundColor?: string;
    dock?: DockPosition;
    id: string;
    overlay?: boolean;
    initiallyOpen?: boolean;
    initialPanelId?: string;
}
declare const sidebarPanel: Facet<SidebarPanelSpec, SidebarPanelSpec[]>;
interface ToggleEffectConfig {
    id: string;
    visible: boolean;
}
interface SetActivePanelConfig {
    id: string;
    panelId: string | null;
}
declare const toggleSidebarEffect: import("@codemirror/state").StateEffectType<ToggleEffectConfig>;
declare const updateSidebarOptionsEffect: import("@codemirror/state").StateEffectType<SidebarOptions>;
declare const setActivePanelEffect: import("@codemirror/state").StateEffectType<SetActivePanelConfig>;
declare const toggleSidebarCommand: (view: EditorView, sidebarId: string) => boolean;
export declare function createSidebar(options: SidebarOptions): Extension[];
export type { SidebarPanelSpec, SidebarOptions, DockPosition };
export { toggleSidebarCommand, toggleSidebarEffect, sidebarPanel, updateSidebarOptionsEffect, setActivePanelEffect, };
