import type { ComponentType } from "react";
interface FreeTrialDialogProps {
    isOpen: boolean;
    onClose: () => void;
}
interface UseShowFreeTrialDialogReturn {
    FreeTrialDialog: ComponentType<FreeTrialDialogProps> | null;
    closeModal: () => void;
    isModalOpen: boolean;
    /**
     * Run a callback, optionally gated by the trial check. The second
     * `enforceTrialCheck` flag mirrors the mentor app's signature so call
     * sites that pass `false` (i.e. opt-out of gating) typecheck against
     * the stub. The stub ignores the flag and always runs the callback.
     */
    executeWithTrialCheck: (callback: () => void, enforceTrialCheck?: boolean) => void;
}
/**
 * Stub implementation of the mentor app's free-trial gate.
 *
 * Always reports the gate as inactive (`isModalOpen: false`,
 * `FreeTrialDialog: null`) and executes any guarded callback immediately.
 * Mirrors the call-site shape of the mentor app's
 * `useShowFreeTrialDialog` so the reusable Chat can render without
 * pulling in the entire subscription / Apple-restriction flow.
 *
 * Host apps that want a real gate should replace this hook with their
 * own implementation that wires up the subscription flow they use.
 */
export declare function useShowFreeTrialDialog(): UseShowFreeTrialDialogReturn;
export {};
