export interface SessionCheckUser {
    id: string;
    email: string;
    name?: string | null;
}
export interface SessionCheckConfig {
    baseUrl: string;
    authPath?: string;
}
interface SessionPayload {
    user: SessionCheckUser;
}
type SessionFetch = typeof fetch;
export declare function fetchSession(config: SessionCheckConfig, fetchImplementation?: SessionFetch | null): Promise<SessionPayload | null>;
export declare function useSessionCheck(config: SessionCheckConfig, fetchImplementation?: SessionFetch | null): {
    user: import('vue').Ref<{
        id: string;
        email: string;
        name?: string | null | undefined;
    } | null, SessionCheckUser | {
        id: string;
        email: string;
        name?: string | null | undefined;
    } | null>;
    loading: import('vue').Ref<boolean, boolean>;
    isAuthenticated: import('vue').ComputedRef<boolean>;
    authUrl: import('vue').ComputedRef<string>;
    dashboardUrl: import('vue').ComputedRef<string>;
    refreshSession: () => Promise<SessionPayload | null>;
};
export {};
