import React from 'react';
import type { Board } from '../../types/boards';
export declare const useBoardById: <T>(id: string) => Board<T> | undefined;
export declare const getBoardById: <T>(id: string) => Board<T> | undefined;
export declare const useBoardContextById: <T>(id: string) => T | undefined;
export declare const getBoardContextById: <T>(id: string) => T | undefined;
export declare const boardContext: React.Context<Board | undefined>;
export type BoardHooksContext = {
    closeBoard: () => void;
    updateBoard: (b: Partial<Board>) => void;
    setCurrentBoard: () => void;
    getBoardContext: <T>() => T;
    getBoard: <T>() => Board<T>;
};
export declare const boardHooksContext: React.Context<BoardHooksContext | undefined>;
type BoardProviderProps = React.PropsWithChildren<{
    id: string;
}>;
export declare const BoardProvider: ({ children, id }: BoardProviderProps) => React.JSX.Element;
/**
 * Allow quick access to all current board hooks.
 * This hook must be used from inside a board view.
 * Outside a board, it will throw an error.
 */
export declare const useBoardHooks: () => BoardHooksContext;
/**
 * Retrieve the board object.
 * This hook must be used from inside a board view.
 * Outside a board, it will throw an error.
 */
export declare const useBoard: <TBoardContext>() => Board<TBoardContext>;
export {};
