import { FileTreeBatchOperation, FileTreeCompositionOptions, FileTreeGitStatusPatch, FileTreeHydrationProps, FileTreeItemHandle, FileTreeListener, FileTreeMoveOptions, FileTreeMutationEventForType, FileTreeMutationEventType, FileTreeMutationHandle, FileTreeOptions, FileTreePublicId, FileTreeRemoveOptions, FileTreeRenderProps, FileTreeResetOptions, FileTreeResetPreparedOptions, FileTreeScrollToPathOptions, FileTreeSearchSessionHandle, FileTreeSsrPayload } from "../model/publicTypes.js";

//#region src/render/FileTree.d.ts
declare function serializeFileTreeSsrPayload(payload: FileTreeSsrPayload, mode?: 'declarative' | 'dom'): string;
declare class FileTree implements FileTreeMutationHandle, FileTreeSearchSessionHandle {
  #private;
  static LoadedCustomComponent: boolean;
  constructor(options: FileTreeOptions);
  unmount(): void;
  cleanUp(): void;
  getFileTreeContainer(): HTMLElement | undefined;
  getItem(path: string): FileTreeItemHandle | null;
  getFocusedItem(): FileTreeItemHandle | null;
  getFocusedPath(): string | null;
  getSelectedPaths(): readonly string[];
  getComposition(): FileTreeCompositionOptions | undefined;
  getItemHeight(): number;
  getDensityFactor(): number;
  subscribe(listener: FileTreeListener): () => void;
  focusPath(path: string): void;
  scrollToPath(path: FileTreePublicId, options?: FileTreeScrollToPathOptions): void;
  focusNearestPath(path: string | null): string | null;
  add(path: string): void;
  batch(operations: readonly FileTreeBatchOperation[]): void;
  applyGitStatusPatch(patch: FileTreeGitStatusPatch): void;
  move(fromPath: string, toPath: string, options?: FileTreeMoveOptions): void;
  onMutation<TType extends FileTreeMutationEventType | '*'>(type: TType, handler: (event: FileTreeMutationEventForType<TType>) => void): () => void;
  setSearch(value: string | null): void;
  openSearch(initialValue?: string): void;
  closeSearch(): void;
  isSearchOpen(): boolean;
  getSearchValue(): string;
  getSearchMatchingPaths(): readonly string[];
  focusNextSearchMatch(): void;
  focusPreviousSearchMatch(): void;
  startRenaming(path?: string, options?: {
    removeIfCanceled?: boolean;
  }): boolean;
  remove(path: string, options?: FileTreeRemoveOptions): void;
  resetPaths(paths: readonly string[], options?: FileTreeResetOptions): void;
  resetPaths(options: FileTreeResetPreparedOptions): void;
  setComposition(composition?: FileTreeCompositionOptions): void;
  setGitStatus(gitStatus?: FileTreeOptions['gitStatus']): void;
  setIcons(icons?: FileTreeOptions['icons']): void;
  hydrate({
    fileTreeContainer
  }: FileTreeHydrationProps): void;
  render({
    containerWrapper,
    fileTreeContainer
  }: FileTreeRenderProps): void;
}
declare function preloadFileTree(options: FileTreeOptions): FileTreeSsrPayload;
//#endregion
export { FileTree, preloadFileTree, serializeFileTreeSsrPayload };
//# sourceMappingURL=FileTree.d.ts.map