import React, { ComponentPropsWithRef, ReactNode, Dispatch, SetStateAction, PropsWithChildren } from 'react';
import * as react_jsx_runtime from 'react/jsx-runtime';
import * as yup from 'yup';
import * as _tanstack_history from '@tanstack/history';
import * as _tanstack_router_core from '@tanstack/router-core';
import * as _tanstack_react_router from '@tanstack/react-router';
import { RouteComponent } from '@tanstack/react-router';
import { Plan, Organization, Group, User, BillingAccount, Subscription, PaymentMethod, OrganizationKyc, BillingAccountDetails } from '@raystack/proton/frontier';
import { ThemeProviderProps } from '@raystack/apsara';
import { QueryClient, UseQueryResult, UseMutationResult } from '@tanstack/react-query';
import { ConnectError } from '@connectrpc/connect';
import { DescMessage, MessageShape, DescMethodUnary, MessageInitShape } from '@bufbuild/protobuf';
import { Timestamp } from '@bufbuild/protobuf/wkt';
import { Dayjs } from 'dayjs';

interface AvatarUploadProps {
    subText?: string;
    value?: string;
    onChange?: (value: string) => void;
    disabled?: boolean;
    initials?: string;
}
declare const AvatarUpload: React.ForwardRefExoticComponent<AvatarUploadProps & React.RefAttributes<HTMLDivElement>>;

type ContainerProps = ComponentPropsWithRef<'div'> & {
    children?: React.ReactNode;
    shadow?: 'none' | 'xs' | 'sm' | 'md' | 'lg';
    radius?: 'none' | 'xs' | 'sm' | 'md' | 'lg';
    className?: string;
};
declare const Container: ({ children, shadow, radius, style, className }: ContainerProps) => react_jsx_runtime.JSX.Element;

type HeaderProps = ComponentPropsWithRef<'div'> & {
    title?: string;
    logo?: React.ReactNode;
};
declare const Header: ({ title, logo }: HeaderProps) => react_jsx_runtime.JSX.Element;

type MagicLinkProps = {
    open?: boolean;
    children?: React.ReactNode;
};
declare const MagicLink: ({ open, ...props }: MagicLinkProps) => react_jsx_runtime.JSX.Element;

type MagicLinkVerifyProps = ComponentPropsWithRef<typeof Container> & {
    logo?: React.ReactNode;
    title?: string;
    redirectURL?: string;
};
declare const MagicLinkVerify: ({ logo, title, redirectURL, ...props }: MagicLinkVerifyProps) => react_jsx_runtime.JSX.Element;

type SignedInProps = ComponentPropsWithRef<typeof Container> & {
    logo?: React.ReactNode;
    title?: string;
    excludes?: string[];
    footer?: boolean;
};
declare const SignIn: ({ logo, title, excludes, footer, ...props }: SignedInProps) => react_jsx_runtime.JSX.Element;

type SignUpProps = ComponentPropsWithRef<typeof Container> & {
    logo?: React.ReactNode;
    title?: string;
    excludes?: string[];
};
declare const SignUp: ({ logo, title, excludes, ...props }: SignUpProps) => react_jsx_runtime.JSX.Element;

declare const schema$1: yup.ObjectSchema<{
    newsletter: boolean | undefined;
}, yup.AnyObject, {
    newsletter: undefined;
}, "">;
type FormData$1 = yup.InferType<typeof schema$1>;
type UpdatesProps = {
    logo?: ReactNode;
    title?: string;
    preferenceTitle?: string;
    preferenceDescription?: string;
    onSubmit?: (data: FormData$1) => void;
};
declare const Updates: ({ logo, title, preferenceTitle, preferenceDescription, onSubmit }: UpdatesProps) => react_jsx_runtime.JSX.Element;

declare const schema: yup.ObjectSchema<{
    name: string;
    email: string;
    contactNumber: string | null | undefined;
}, yup.AnyObject, {
    name: undefined;
    email: undefined;
    contactNumber: undefined;
}, "">;
type FormData = yup.InferType<typeof schema>;
type SubscribeProps = {
    title?: string;
    desc?: string;
    activity?: string;
    medium?: string;
    source?: string;
    confirmSection?: ReactNode;
    onSubmit?: (data: FormData) => void;
};
declare const Subscribe: ({ title, desc, activity, medium, source, confirmSection, onSubmit }: SubscribeProps) => react_jsx_runtime.JSX.Element;

type CreateOrganizationProps = ComponentPropsWithRef<typeof Container> & {
    title?: string;
    description?: string;
};
declare const CreateOrganization: ({ title, description, ...props }: CreateOrganizationProps) => react_jsx_runtime.JSX.Element;

interface CustomScreen {
    name: string;
    path: string;
    category: 'Organization' | 'User';
    component: RouteComponent;
}
type Theme = 'light' | 'dark' | 'system';
interface OrganizationProfileProps {
    organizationId: string;
    defaultRoute?: string;
    showBilling?: boolean;
    showTokens?: boolean;
    showAPIKeys?: boolean;
    showPreferences?: boolean;
    hideToast?: boolean;
    customScreens?: CustomScreen[];
    onLogout?: () => void;
    theme?: Theme;
    onThemeChange?: (theme: Theme) => void;
}
interface CustomRoutes {
    Organization: Pick<CustomScreen, 'name' | 'path'>[];
    User: Pick<CustomScreen, 'name' | 'path'>[];
}
type RouterContext = Pick<OrganizationProfileProps, 'organizationId' | 'showBilling' | 'showTokens' | 'showAPIKeys' | 'hideToast' | 'showPreferences' | 'theme' | 'onThemeChange'> & {
    customRoutes: CustomRoutes;
    onLogout?: () => void;
};

declare const router: _tanstack_router_core.RouterCore<_tanstack_router_core.Route<_tanstack_react_router.Register, any, "/", "/", string, "__root__", undefined, {}, RouterContext, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, {}, undefined, readonly [_tanstack_react_router.Route<unknown, _tanstack_react_router.RootRoute<_tanstack_react_router.Register, undefined, RouterContext, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, "/", "/", string, "/", undefined, _tanstack_react_router.ResolveParams<"/">, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, _tanstack_react_router.Route<unknown, _tanstack_react_router.RootRoute<_tanstack_react_router.Register, undefined, RouterContext, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, "/security", "/security", string, "/security", undefined, _tanstack_react_router.ResolveParams<"/security">, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, _tanstack_react_router.Route<unknown, _tanstack_react_router.RootRoute<_tanstack_react_router.Register, undefined, RouterContext, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, "/sessions", "/sessions", string, "/sessions", undefined, _tanstack_react_router.ResolveParams<"/sessions">, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, _tanstack_react_router.Route<unknown, _tanstack_react_router.RootRoute<_tanstack_react_router.Register, undefined, RouterContext, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, "/members", "/members", string, "/members", undefined, _tanstack_react_router.ResolveParams<"/members">, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, _tanstack_react_router.Route<unknown, _tanstack_react_router.RootRoute<_tanstack_react_router.Register, undefined, RouterContext, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, "/teams", "/teams", string, "/teams", undefined, _tanstack_react_router.ResolveParams<"/teams">, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, _tanstack_router_core.Route<unknown, _tanstack_react_router.RootRoute<_tanstack_react_router.Register, undefined, RouterContext, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, "/domains", "/domains", string, "/domains", undefined, _tanstack_react_router.ResolveParams<"/domains">, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, {}, undefined, readonly [_tanstack_react_router.Route<unknown, _tanstack_react_router.Route<unknown, _tanstack_react_router.RootRoute<_tanstack_react_router.Register, undefined, RouterContext, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, "/domains", "/domains", string, "/domains", undefined, _tanstack_react_router.ResolveParams<"/domains">, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, "/modal", "/domains/modal", string, "/domains/modal", undefined, _tanstack_react_router.ResolveParams<"/modal">, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, _tanstack_react_router.Route<unknown, _tanstack_react_router.Route<unknown, _tanstack_react_router.RootRoute<_tanstack_react_router.Register, undefined, RouterContext, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, "/domains", "/domains", string, "/domains", undefined, _tanstack_react_router.ResolveParams<"/domains">, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, "/$domainId/verify", "/domains/$domainId/verify", string, "/domains/$domainId/verify", undefined, _tanstack_react_router.ResolveParams<"/$domainId/verify">, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, _tanstack_react_router.Route<unknown, _tanstack_react_router.Route<unknown, _tanstack_react_router.RootRoute<_tanstack_react_router.Register, undefined, RouterContext, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, "/domains", "/domains", string, "/domains", undefined, _tanstack_react_router.ResolveParams<"/domains">, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, "/$domainId/delete", "/domains/$domainId/delete", string, "/domains/$domainId/delete", undefined, _tanstack_react_router.ResolveParams<"/$domainId/delete">, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>], unknown, unknown, unknown, undefined>, _tanstack_react_router.Route<unknown, _tanstack_react_router.RootRoute<_tanstack_react_router.Register, undefined, RouterContext, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, "/teams/$teamId", "/teams/$teamId", string, "/teams/$teamId", undefined, _tanstack_react_router.ResolveParams<"/teams/$teamId">, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, _tanstack_react_router.Route<unknown, _tanstack_react_router.RootRoute<_tanstack_react_router.Register, undefined, RouterContext, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, "/projects", "/projects", string, "/projects", undefined, _tanstack_react_router.ResolveParams<"/projects">, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, _tanstack_react_router.Route<unknown, _tanstack_react_router.RootRoute<_tanstack_react_router.Register, undefined, RouterContext, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, "/projects/$projectId", "/projects/$projectId", string, "/projects/$projectId", undefined, _tanstack_react_router.ResolveParams<"/projects/$projectId">, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, _tanstack_react_router.Route<unknown, _tanstack_react_router.RootRoute<_tanstack_react_router.Register, undefined, RouterContext, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, "/profile", "/profile", string, "/profile", undefined, _tanstack_react_router.ResolveParams<"/profile">, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, _tanstack_react_router.Route<unknown, _tanstack_react_router.RootRoute<_tanstack_react_router.Register, undefined, RouterContext, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, "/preferences", "/preferences", string, "/preferences", undefined, _tanstack_react_router.ResolveParams<"/preferences">, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, _tanstack_react_router.Route<unknown, _tanstack_react_router.RootRoute<_tanstack_react_router.Register, undefined, RouterContext, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, "/billing", "/billing", string, "/billing", undefined, _tanstack_react_router.ResolveParams<"/billing">, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, _tanstack_react_router.Route<unknown, _tanstack_react_router.RootRoute<_tanstack_react_router.Register, undefined, RouterContext, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, "/plans", "/plans", string, "/plans", undefined, _tanstack_react_router.ResolveParams<"/plans">, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, _tanstack_react_router.Route<unknown, _tanstack_react_router.RootRoute<_tanstack_react_router.Register, undefined, RouterContext, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, "/tokens", "/tokens", string, "/tokens", undefined, _tanstack_react_router.ResolveParams<"/tokens">, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, _tanstack_react_router.Route<unknown, _tanstack_react_router.RootRoute<_tanstack_react_router.Register, undefined, RouterContext, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, "/api-keys", "/api-keys", string, "/api-keys", undefined, _tanstack_react_router.ResolveParams<"/api-keys">, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, _tanstack_react_router.Route<unknown, _tanstack_react_router.RootRoute<_tanstack_react_router.Register, undefined, RouterContext, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, "/api-keys/$id", "/api-keys/$id", string, "/api-keys/$id", undefined, _tanstack_react_router.ResolveParams<"/api-keys/$id">, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, ..._tanstack_react_router.Route<unknown, _tanstack_react_router.RootRoute<_tanstack_react_router.Register, undefined, RouterContext, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, string, "/", string, "__root__", undefined, _tanstack_react_router.ResolveParams<string>, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, _tanstack_react_router.AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>[]], unknown, unknown, unknown, undefined>, "never", false, _tanstack_history.RouterHistory, Record<string, any>>;
declare const OrganizationProfile: ({ organizationId, defaultRoute, showBilling, showTokens, showAPIKeys, showPreferences, hideToast, customScreens, onLogout, theme, onThemeChange, }: OrganizationProfileProps) => react_jsx_runtime.JSX.Element;
declare module '@tanstack/react-router' {
    interface Register {
        router: typeof router;
    }
    interface HistoryState {
        refetch?: boolean;
        enableServiceUserTokensListFetch?: boolean;
    }
}

interface WindowProps extends React.HTMLAttributes<HTMLDialogElement> {
    open?: boolean;
    onOpenChange?: (open: boolean) => void;
    children?: React.ReactNode;
}
declare const Window: ({ open, onOpenChange, children, ...props }: WindowProps) => react_jsx_runtime.JSX.Element;

interface BasePlan extends Omit<Plan, 'title'> {
    features?: Record<string, string>;
    title: string;
}

interface FrontierClientBillingOptions {
    supportEmail?: string;
    successUrl?: string;
    cancelUrl?: string;
    hideDecimals?: boolean;
    cancelAfterTrial?: boolean;
    showPerMonthPrice?: boolean;
    tokenProductId?: string;
    basePlan?: BasePlan;
}
interface EntityTerminologies {
    singular: string;
    plural: string;
}
interface FrontierClientCustomizationOptions {
    terminology?: {
        organization?: EntityTerminologies;
        project?: EntityTerminologies;
        team?: EntityTerminologies;
        member?: EntityTerminologies;
        user?: EntityTerminologies;
        appName?: string;
    };
    messages?: {
        billing?: {
            plan_change?: Record<string, string>;
        };
        general?: Record<string, string>;
    };
}
interface FrontierClientOptions {
    locale?: string;
    connectEndpoint?: string;
    redirectSignup?: string;
    redirectLogin?: string;
    redirectMagicLinkVerify?: string;
    callbackUrl?: string;
    dateFormat?: string;
    shortDateFormat?: string;
    billing?: FrontierClientBillingOptions;
    customization?: FrontierClientCustomizationOptions;
}
interface InitialState {
    sessionId?: string | null;
}
type CustomHeaderValue = string | (() => string);
interface FrontierProviderProps {
    config: FrontierClientOptions;
    children: React.ReactNode;
    initialState?: InitialState;
    customHeaders?: Record<string, CustomHeaderValue>;
    theme?: ThemeProviderProps;
    renderToastProvider?: boolean;
    renderThemeProvider?: boolean;
}

interface FrontierContextProviderProps {
    config: FrontierClientOptions;
    organizations: Organization[];
    groups: Group[];
    user: User | undefined;
    activeOrganization: Organization | undefined;
    setActiveOrganization: Dispatch<SetStateAction<Organization | undefined>>;
    isActiveOrganizationLoading: boolean;
    setIsActiveOrganizationLoading: Dispatch<SetStateAction<boolean>>;
    isUserLoading: boolean;
    billingAccount: BillingAccount | undefined;
    isBillingAccountLoading: boolean;
    trialSubscription: Subscription | undefined;
    activeSubscription: Subscription | undefined;
    subscriptions: Subscription[];
    isActiveSubscriptionLoading: boolean;
    trialPlan: Plan | undefined;
    activePlan: Plan | undefined;
    allPlans: Plan[];
    isAllPlansLoading: boolean;
    fetchActiveSubscription: () => Promise<Subscription | undefined>;
    paymentMethod: PaymentMethod | undefined;
    basePlan?: Plan;
    organizationKyc: OrganizationKyc | undefined;
    isOrganizationKycLoading: boolean;
    billingDetails: BillingAccountDetails | undefined;
    sessionMetadata: {
        browser?: string;
        operatingSystem?: string;
        ipAddress?: string;
        location?: {
            city?: string;
            country?: string;
            latitude?: string;
            longitude?: string;
        };
    } | undefined;
}
declare function useFrontier(): FrontierContextProviderProps;

declare const queryClient: QueryClient;
declare const FrontierProvider: {
    (props: FrontierProviderProps): react_jsx_runtime.JSX.Element;
    displayName: string;
};

interface CustomizationProviderProps {
    children: ReactNode;
    config?: FrontierClientCustomizationOptions;
}
declare const CustomizationProvider: React.FC<CustomizationProviderProps>;

interface TerminologyOptions {
    plural?: boolean;
    case?: "lower" | "upper" | "capital";
}
interface TerminologyEntity {
    (options?: TerminologyOptions): string;
}
interface TerminologyMap {
    organization: TerminologyEntity;
    project: TerminologyEntity;
    team: TerminologyEntity;
    member: TerminologyEntity;
    user: TerminologyEntity;
    appName: TerminologyEntity;
}
declare const useTerminology: () => TerminologyMap;

interface UseTokensReturn {
    tokenBalance: bigint;
    isTokensLoading: boolean;
    fetchTokenBalance: () => Promise<any>;
}
declare const useTokens: () => UseTokensReturn;

declare const useBillingPermission: () => {
    isFetching: boolean;
    isAllowed: boolean;
    canSeeBilling: boolean;
};

type UseConnectQueryPollingResult<TData> = UseQueryResult<TData, ConnectError> & {
    isPollingFailed: boolean;
};
declare function useConnectQueryPolling<I extends DescMessage, O extends DescMessage, SelectOutData = MessageShape<O>>(params: {
    method: DescMethodUnary<I, O>;
    input: MessageInitShape<I> | undefined;
    enabled: boolean;
    select: (data: MessageShape<O>) => SelectOutData;
    isComplete: (data: SelectOutData) => boolean;
    maxPoll?: number;
    pollingInterval?: number;
}): UseConnectQueryPollingResult<SelectOutData>;

type Preference = {
    name?: string;
    value?: string;
    scopeType?: string;
    scopeId?: string;
    [key: string]: any;
};
type Preferences = Record<string, Preference>;
interface UsePreferences {
    preferences: Preferences;
    isLoading: boolean;
    isFetching: boolean;
    status: 'idle' | 'fetching' | 'loading';
    fetchPreferences: () => void;
    updatePreferences: (preferences: Preference[]) => Promise<void>;
    fetchPreferencesStatus: UseQueryResult['status'];
    updatePreferencesStatus: UseMutationResult['status'];
}
declare function usePreferences({ autoFetch, scopeType, scopeId }?: {
    autoFetch?: boolean;
    scopeType?: string;
    scopeId?: string;
}): UsePreferences;

interface LayoutProps {
    title: string;
    description?: string;
}
declare function Layout({ title, description, children }: PropsWithChildren<LayoutProps>): react_jsx_runtime.JSX.Element;

interface PageHeaderProps {
    title: string;
    description?: string | ReactNode;
}
/**
 * PageHeader - Component for displaying page header with a title and optional description on top of SDK pages.
 *
 * @param title - The main heading text for the page
 * @param description - Optional description text or ReactNode displayed below the title
 *
 * @example
 * <PageHeader
 *   title="Sessions"
 *   description="Devices logged into this account."
 * />
 */
declare const PageHeader: ({ title, description }: PageHeaderProps) => react_jsx_runtime.JSX.Element;

declare const PREFERENCE_OPTIONS: {
    readonly NEWSLETTER: "newsletter";
};

/**
 * Converts a ConnectRPC Timestamp to a JavaScript Date
 */
declare function timestampToDate(timestamp?: Timestamp): Date | null;
/**
 * Converts a ConnectRPC Timestamp to a Dayjs object
 */
declare function timestampToDayjs(timestamp?: Timestamp): Dayjs | null;
/**
 * Checks if a ConnectRPC Timestamp is the null time (0001-01-01T00:00:00Z)
 */
declare function isNullTimestamp(timestamp?: Timestamp): boolean;
type TimeStamp = Timestamp;

export { AvatarUpload, Container, CreateOrganization, CustomizationProvider, FrontierClientBillingOptions, FrontierClientCustomizationOptions, FrontierClientOptions, FrontierProvider, Header, Layout, MagicLink, MagicLinkVerify, OrganizationProfile, PREFERENCE_OPTIONS, PageHeader, SignIn, SignUp, Subscribe, TimeStamp, Updates, Window, isNullTimestamp, queryClient, timestampToDate, timestampToDayjs, useBillingPermission, useConnectQueryPolling, useFrontier, usePreferences, useTerminology, useTokens };
