import { ComponentProps, ReactNode } from 'react';
import { AllMessages } from './messages';
import { Theme } from './theme/utils';
/**
 * Allows injecting necessary router-related components.
 * Projects can have different routers:
 * Tanstack Router, React Router, Next router
 * */
interface SpeziContextRouter {
    /**
     * Link component. Make sure to provide your router's Link component.
     * */
    Link: (props: ComponentProps<"a">) => ReactNode;
}
export interface SpeziContextType {
    router: SpeziContextRouter;
}
export declare const SpeziContext: import('react').Context<SpeziContextType | null>;
export declare const useSpeziContext: () => SpeziContextType;
interface SpeziProviderProps extends SpeziContextType {
    children?: ReactNode;
    theme?: Partial<Theme>;
    messages?: Partial<AllMessages>;
}
/**
 * Configures messages and theme
 * */
export declare const SpeziProvider: ({ children, messages, theme, router, }: SpeziProviderProps) => import("react").JSX.Element;
export {};
