import type { HydrogenSession } from '@shopify/hydrogen';
import { type SessionStorage, type Session } from '@shopify/remix-oxygen';
export interface FastSimonSessionData {
    visitedProducts: string[];
    sessionToken: string;
    userSession: string;
    customerAccount?: any;
    buyer?: any;
}
export interface FsSession extends HydrogenSession<FastSimonSessionData> {
    getVisitedProducts(): string[];
    addVisitedProduct(productId: string): void;
    setSessionToken(token: string): void;
    setUserSession(session: string): void;
    getSessionToken(): string;
    getUserSession(): string;
}
export declare class FastSimonSession implements FsSession {
    #private;
    isPending: boolean;
    constructor(sessionStorage: SessionStorage, session: Session);
    static init(request: Request, secrets: string[]): Promise<FastSimonSession>;
    get<Key extends keyof FastSimonSessionData | string>(key: Key): (Key extends string | number ? any : undefined) | (Key extends string | number ? any : undefined) | undefined;
    set(key: keyof FastSimonSessionData, value: any): void;
    unset(key: keyof FastSimonSessionData): void;
    commit(): Promise<string>;
    getVisitedProducts(): string[];
    addVisitedProduct(productId: string): void;
    setSessionToken(token: string): void;
    setUserSession(session: string): void;
    getSessionToken(): any;
    getUserSession(): any;
}
