import React, { FC } from 'react';
import { Schema } from '@tachybase/schema';
import { Location, NavigateFunction } from 'react-router-dom';
export declare const LocationSearchContext: React.Context<string>;
/**
 * @internal
 */
export declare const CurrentPageUidContext: React.Context<string>;
/**
 * @internal
 */
export declare const CurrentTabUidContext: React.Context<string>;
export declare const IsSubPageClosedByPageMenuProvider: FC<{
    children: React.ReactNode;
}>;
export declare const CurrentPageUidProvider: FC<{
    children: React.ReactNode;
}>;
export declare const CurrentTabUidProvider: FC<{
    children: React.ReactNode;
}>;
/**
 * use `useNavigateNoUpdate` to avoid components re-rendering.
 * @returns
 */
export declare const useNavigateNoUpdate: () => NavigateFunction;
/**
 * use `useLocationNoUpdate` to avoid components re-rendering.
 * @returns
 */
export declare const useLocationNoUpdate: () => Location<any>;
export declare const useLocationSearch: () => string;
export declare const useIsAdminPage: () => boolean;
export declare const useCurrentPageUid: () => string;
export declare const useMatchAdmin: () => boolean;
export declare const useMatchAdminName: () => boolean;
export declare const useIsInSettingsPage: () => boolean;
/**
 * @internal
 */
export declare const useCurrentTabUid: () => string;
export declare const useCurrentSearchParams: () => URLSearchParams;
export declare const useRouterBasename: () => string;
/**
 * Used to determine if the user closed the sub-page by clicking on the page menu
 * @returns
 */
export declare const useIsSubPageClosedByPageMenu: (fieldSchema: Schema) => {
    isSubPageClosedByPageMenu: () => boolean;
    reset: () => void;
};
export declare const CustomRouterContextProvider: FC<{
    children: React.ReactNode;
}>;
