import { ReactNode } from 'react';
/**
 * Patient information interface
 */
export interface PatientInfo {
    id: string;
    name: string;
    birthdate?: string;
    gender?: string;
}
/**
 * Configuration for the ClinicalContext
 */
export interface ClinicalContextConfig {
    /** Prefix for sessionStorage keys (e.g., "mf-consents", "mf-admin") */
    storageKeyPrefix: string;
}
/**
 * Context type for clinical context (profile, location, patient selection)
 */
export interface ClinicalContextType {
    profileId: string;
    locationId: string;
    patientId: string;
    patientInfo: PatientInfo | null;
    setProfileId: (id: string, name?: string) => void;
    setLocationId: (id: string, name?: string) => void;
    setPatientId: (id: string, info?: PatientInfo) => void;
    resetSelection: () => void;
}
interface ClinicalContextProviderProps {
    children: ReactNode;
    config: ClinicalContextConfig;
}
/**
 * Provider for clinical context (profile -> location -> patient selection)
 * Can be configured with custom storage keys for different apps
 */
export declare const ClinicalContextProvider: ({ children, config }: ClinicalContextProviderProps) => import("react/jsx-runtime").JSX.Element;
/**
 * Hook to access the clinical context
 * Must be used within a ClinicalContextProvider
 */
export declare const useClinicalContext: () => ClinicalContextType;
export {};
//# sourceMappingURL=ClinicalContext.d.ts.map