import { DataGridElement } from './lib/core/grid';
import { GridConfig } from './lib/core/types';
/**
 * @toolbox-web/grid - A high-performance, framework-agnostic data grid web component.
 *
 * This is the public API surface. Only symbols exported here are considered stable.
 *
 * @packageDocumentation
 * @module Core
 */
export { DataGridElement, DataGridElement as GridElement } from './lib/core/grid';
/**
 * Clean type alias for the grid element.
 * Use this in place of `DataGridElement<T>` for more concise code.
 *
 * @example
 * ```typescript
 * import { TbwGrid, createGrid } from '@toolbox-web/grid';
 *
 * const grid: TbwGrid<Employee> = createGrid();
 * grid.rows = employees;
 * ```
 */
export type { DataGridElement as TbwGrid } from './lib/core/grid';
/**
 * Create a new typed grid element programmatically.
 *
 * This avoids the need to cast when creating grids in TypeScript:
 * ```typescript
 * // Before: manual cast required
 * const grid = document.createElement('tbw-grid') as DataGridElement<Employee>;
 *
 * // After: fully typed
 * const grid = createGrid<Employee>({
 *   columns: [{ field: 'name' }],
 *   plugins: [new SelectionPlugin()],
 * });
 * grid.rows = employees; // ✓ Typed!
 * ```
 *
 * @param config - Optional initial grid configuration
 * @returns A typed DataGridElement instance
 */
export declare function createGrid<TRow = unknown>(config?: Partial<GridConfig<TRow>>): DataGridElement<TRow>;
/**
 * Query an existing grid element from the DOM with proper typing.
 *
 * This avoids the need to cast when querying grids:
 * ```typescript
 * // Before: manual cast required
 * const grid = document.querySelector('tbw-grid') as DataGridElement<Employee>;
 *
 * // After: fully typed
 * const grid = queryGrid<Employee>('#my-grid');
 * if (grid) {
 *   grid.rows = employees; // ✓ Typed!
 * }
 * ```
 *
 * @param selector - CSS selector to find the grid element
 * @param parent - Parent node to search within (defaults to document)
 * @returns The typed grid element or null if not found
 */
export declare function queryGrid<TRow = unknown>(selector: string, parent?: ParentNode): DataGridElement<TRow> | null;
/**
 * Event name constants for DataGrid (public API).
 *
 * @category Events
 */
export declare const DGEvents: {
    /** Emitted by core after any data mutation */
    readonly CELL_CHANGE: "cell-change";
    readonly CELL_COMMIT: "cell-commit";
    readonly ROW_COMMIT: "row-commit";
    readonly CHANGED_ROWS_RESET: "changed-rows-reset";
    readonly MOUNT_EXTERNAL_VIEW: "mount-external-view";
    readonly MOUNT_EXTERNAL_EDITOR: "mount-external-editor";
    readonly SORT_CHANGE: "sort-change";
    readonly COLUMN_RESIZE: "column-resize";
    readonly ACTIVATE_CELL: "activate-cell";
    /** Unified cell activation event (keyboard or pointer) */
    readonly CELL_ACTIVATE: "cell-activate";
    readonly GROUP_TOGGLE: "group-toggle";
    readonly COLUMN_STATE_CHANGE: "column-state-change";
};
/**
 * Union type of all DataGrid event names.
 *
 * @category Events
 */
export type DGEventName = (typeof DGEvents)[keyof typeof DGEvents];
/**
 * Plugin event constants (mirrors DGEvents pattern).
 *
 * @category Events
 */
export declare const PluginEvents: {
    readonly SELECTION_CHANGE: "selection-change";
    readonly TREE_EXPAND: "tree-expand";
    readonly FILTER_CHANGE: "filter-change";
    readonly SORT_MODEL_CHANGE: "sort-model-change";
    readonly EXPORT_START: "export-start";
    readonly EXPORT_COMPLETE: "export-complete";
    readonly CLIPBOARD_COPY: "clipboard-copy";
    readonly CLIPBOARD_PASTE: "clipboard-paste";
    readonly CONTEXT_MENU_OPEN: "context-menu-open";
    readonly CONTEXT_MENU_CLOSE: "context-menu-close";
    readonly HISTORY_CHANGE: "history-change";
    readonly SERVER_LOADING: "server-loading";
    readonly SERVER_ERROR: "server-error";
    readonly COLUMN_VISIBILITY_CHANGE: "column-visibility-change";
    readonly COLUMN_REORDER: "column-reorder";
    readonly DETAIL_EXPAND: "detail-expand";
    readonly GROUP_EXPAND: "group-expand";
};
/**
 * Union type of all plugin event names.
 *
 * @category Events
 */
export type PluginEventName = (typeof PluginEvents)[keyof typeof PluginEvents];
export type { 
/** @deprecated Use CellActivateDetail instead */
ActivateCellDetail, AggregatorRef, AnimationConfig, AnimationMode, AnimationStyle, BaseColumnConfig, CellActivateDetail, CellActivateTrigger, CellChangeDetail, CellClickDetail, CellCommitDetail, CellRenderContext, ChangedRowsResetDetail, ColumnConfig, ColumnConfigMap, ColumnEditorContext, ColumnEditorSpec, ColumnResizeDetail, ColumnSortState, ColumnState, ColumnType, ColumnViewRenderer, DataGridCustomEvent, DataGridElement as DataGridElementInterface, DataGridEventMap, ExpandCollapseAnimation, ExternalMountEditorDetail, ExternalMountViewDetail, FitMode, FrameworkAdapter, GridColumnState, GridConfig, GridIcons, GridPlugin, HeaderCellContext, HeaderContentDefinition, HeaderLabelContext, HeaderLabelRenderer, HeaderRenderer, IconValue, InferredColumnResult, LoadingContext, LoadingRenderer, LoadingSize, PrimitiveColumnType, PublicGrid, RowAnimationType, RowClickDetail, RowCommitDetail, RowGroupRenderConfig, RowUpdate, ShellConfig, ShellHeaderConfig, SortChangeDetail, SortHandler, SortState, ToolbarContentDefinition, ToolPanelConfig, ToolPanelDefinition, TypeDefault, UpdateSource, } from './lib/core/types';
export { DEFAULT_ANIMATION_CONFIG, DEFAULT_GRID_ICONS, FitModeEnum } from './lib/core/types';
export { builtInSort, defaultComparator } from './lib/core/internal/sorting';
export { BaseGridPlugin, PLUGIN_QUERIES } from './lib/core/plugin';
export type { AfterCellRenderContext, AfterRowRenderContext, PluginQuery } from './lib/core/plugin';
export { GridClasses, GridCSSVars, GridDataAttrs, GridSelectors } from './lib/core/constants';
export type { GridClassName, GridCSSVar, GridDataAttr } from './lib/core/constants';
/**
 * Internal types for advanced users building custom plugins or enterprise extensions.
 *
 * These types provide access to grid internals that may be needed for deep customization.
 * While not part of the "stable" API, they are exported for power users who need them.
 *
 * @remarks
 * Use with caution - these types expose internal implementation details.
 * The underscore-prefixed members they reference are considered less stable
 * than the public API surface.
 *
 * @example
 * ```typescript
 * import { BaseGridPlugin } from '@toolbox-web/grid';
 * import type { InternalGrid, ColumnInternal } from '@toolbox-web/grid';
 *
 * export class MyPlugin extends BaseGridPlugin<MyConfig> {
 *   afterRender(): void {
 *     // Access grid internals with proper typing
 *     const grid = this.grid as InternalGrid;
 *     const columns = grid._columns as ColumnInternal[];
 *     // ...
 *   }
 * }
 * ```
 */
/**
 * Column configuration with internal cache properties.
 * Extends the public ColumnConfig with compiled template caches (__compiledView, __viewTemplate, etc.)
 * @internal
 */
export type { ColumnInternal } from './lib/core/types';
/**
 * Compiled template function with __blocked property for error handling.
 * @internal
 */
export type { CompiledViewFunction } from './lib/core/types';
/**
 * Full internal grid interface extending PublicGrid with internal state.
 * Provides typed access to _columns, _rows, virtualization state, etc.
 * @internal
 */
export type { InternalGrid } from './lib/core/types';
/**
 * Cell context for renderer/editor operations.
 * @internal
 */
export type { CellContext } from './lib/core/types';
/**
 * Editor execution context extending CellContext with commit/cancel functions.
 * @internal
 */
export type { EditorExecContext } from './lib/core/types';
/**
 * Template evaluation context for dynamic templates.
 * @internal
 */
export type { EvalContext } from './lib/core/types';
/**
 * Column resize controller interface.
 * @internal
 */
export type { ResizeController } from './lib/core/types';
/**
 * Row virtualization state interface.
 * @internal
 */
export type { VirtualState } from './lib/core/types';
/**
 * Row element with internal editing state cache.
 * Used for tracking editing cell count without querySelector.
 * @internal
 */
export type { RowElementInternal } from './lib/core/types';
/**
 * Union type for input-like elements that have a `value` property.
 * Covers standard form elements and custom elements with value semantics.
 * @internal
 */
export type { InputLikeElement } from './lib/core/types';
/**
 * Utility type to safely cast a grid element to InternalGrid for plugin use.
 *
 * @example
 * ```typescript
 * import type { AsInternalGrid, InternalGrid } from '@toolbox-web/grid';
 *
 * class MyPlugin extends BaseGridPlugin {
 *   get internalGrid(): InternalGrid {
 *     return this.grid as AsInternalGrid;
 *   }
 * }
 * ```
 * @internal
 */
export type AsInternalGrid<T = unknown> = import('./lib/core/types').InternalGrid<T>;
/**
 * Render phase enum for debugging and understanding the render pipeline.
 * Higher phases include all lower phase work.
 */
export { RenderPhase } from './lib/core/internal/render-scheduler';
//# sourceMappingURL=public.d.ts.map