import { ReactNode } from "react";
interface FeatureGateProps {
    /** Feature(s) required to show the children. Can be a string or array of strings. */
    feature: string | string[];
    /** If true, ALL features must be present. If false (default), ANY feature grants access. */
    requireAll?: boolean;
    /** Content to show when the feature is available */
    children: ReactNode;
    /** Optional content to show when the feature is not available */
    fallback?: ReactNode;
    /** If true, shows children even when license context is not available (useful for dev) */
    allowWhenNoContext?: boolean;
}
/**
 * Component that conditionally renders children based on license features.
 *
 * @example
 * // Single feature check
 * <FeatureGate feature="ai">
 *   <AIAssistantPanel />
 * </FeatureGate>
 *
 * @example
 * // Multiple features (any)
 * <FeatureGate feature={["ai", "translation"]}>
 *   <AdvancedTools />
 * </FeatureGate>
 *
 * @example
 * // Multiple features (all required)
 * <FeatureGate feature={["ai", "reviews"]} requireAll>
 *   <AIReviewsFeature />
 * </FeatureGate>
 *
 * @example
 * // With fallback
 * <FeatureGate feature="page-wizard" fallback={<UpgradePrompt />}>
 *   <PageWizard />
 * </FeatureGate>
 */
export declare function FeatureGate({ feature, requireAll, children, fallback, allowWhenNoContext, }: FeatureGateProps): import("react/jsx-runtime").JSX.Element;
/**
 * Hook to check if a feature is available
 *
 * @example
 * const canUseAI = useFeature("ai");
 * const canUseAdvanced = useFeature(["ai", "translation"], { requireAll: true });
 */
export declare function useFeature(feature: string | string[], options?: {
    requireAll?: boolean;
}): boolean;
/**
 * Hook to get the current license status for display purposes
 */
export declare function useLicenseStatus(): {
    isLicensed: boolean;
    licenseType: "trial" | "purchased" | null;
    features: string[];
    daysRemaining: number | undefined;
    expiresAt: Date | undefined;
    isLoading: boolean;
};
/**
 * Upgrade prompt component shown when a feature is not available
 */
interface UpgradePromptProps {
    feature: string;
    className?: string;
}
export declare function UpgradePrompt({ feature, className }: UpgradePromptProps): import("react/jsx-runtime").JSX.Element;
/**
 * Badge showing the current license status
 */
export declare function LicenseBadge(): import("react/jsx-runtime").JSX.Element | null;
export {};
