import { AuthenticationRole, Partner, Organisation, User, AuthenticationState } from "../../../data";
import { ProviderProps } from "react";
import { Config } from "../../../config";
export interface ReactData {
    config: Config;
    body?: unknown;
    input?: unknown;
    result?: unknown;
    error?: unknown;
    query?: unknown;
    submitted?: true;
    timezone: string;
    url: string;
    origin: string;
    isUnauthenticated: boolean;
    isFragment: boolean;
    organisations: Organisation[];
    partners?: Partner[];
    user?: User;
    authenticationState?: AuthenticationState;
    roles?: AuthenticationRole[];
}
export declare const DataContext: import("react").Context<ReactData>;
export declare function DataProvider({ children, ...props }: ProviderProps<ReactData>): import("react/jsx-runtime").JSX.Element;
export declare function useData(): ReactData;
export declare function useMaybeUser(): User | undefined;
export declare function useUser(): User;
export declare function useMaybeAuthenticationState(): AuthenticationState | undefined;
export declare function useAuthenticationState(): AuthenticationState;
export declare function useMaybeBody<B>(): B | undefined;
export declare function useBody<B>(): B;
type QueryRecord = Record<string, string>;
export declare function useQuery<Q = QueryRecord>(): Q;
export declare function useQuerySearch(): string;
export declare function useMaybeResult<R>(): R | undefined;
export declare function useResult<R>(): R;
export declare function useMaybeInput<I>(): I | undefined;
export declare function useInput<I>(): I;
export declare function useError(): unknown | undefined;
export declare function useSubmitted(): boolean;
export declare function usePartners(): Partner[];
export declare function usePartner(partnerId: string): Partner;
export declare function useOrganisations(): Organisation[];
export declare function useRoles(): AuthenticationRole[];
export declare function useIsRole(role: AuthenticationRole): boolean;
export declare function useIsTrusted(): boolean;
export declare function useIsModerator(): boolean;
export declare function useIsAdmin(): boolean;
export declare function useTimezone(): string;
export declare function useConfig(): Config;
export {};
