export type FounderStats = {
    health: number;
    morale: number;
    hustle: number;
    tech: number;
    luck: number;
    stamina: number;
    maxStamina: number;
    staminaRegen: number;
    personalCash: number;
};
export type CompanyStats = {
    runway: number;
    burnRate: number;
    users: number;
    productProgress: number;
    companyCash: number;
    revenue: number;
    investorTrust: number;
};
export declare enum GameStage {
    Garage = "Garage",
    DemoDay = "Demo Day",
    Fundraising = "Fundraising",
    PMF = "PMF",
    Scaling = "Scaling",
    Crisis = "Crisis",
    Exit = "Exit"
}
export type StageProgress = {
    currentStage: GameStage;
    week: number;
    completedEvents: string[];
    availableEvents: string[];
};
export type CompanyFlags = {
    hasCoFounder: boolean;
    coFounderEquity: number;
    inAccelerator: boolean;
    acceleratorName?: string;
    hasRaisedSeed: boolean;
    hasRaisedSeriesA: boolean;
    hasPMF: boolean;
    hasFirstEmployee: boolean;
    hasOffice: boolean;
    hasBoard: boolean;
    majorCrisisSurvived: boolean;
    exitOffersReceived: number;
};
export type GameState = {
    founderName: string;
    companyName: string;
    founderStats: FounderStats;
    companyStats: CompanyStats;
    stageProgress: StageProgress;
    companyFlags: CompanyFlags;
    gameOver: boolean;
    gameOverReason?: string;
};
export declare const createInitialGameState: (founderName: string, companyName: string, initialPersonalCash?: number) => GameState;
export declare const initGame: (founderName: string, companyName: string, initialCash?: number) => GameState;
export declare const getGameState: () => GameState;
export declare const updateGameState: (updater: (state: GameState) => GameState) => GameState;
export declare const saveGame: () => void;
export declare const loadGame: () => GameState | null;
export declare const endGame: (reason: string) => void;
export declare const advanceWeek: () => void;
