import React from 'react';
import { z } from 'zod';

declare function ChangeEmailWidget(): JSX.Element;

declare function ProfileWidget(): JSX.Element;

interface NavLinkItem {
    type: 'link';
    key: string;
    to: string;
    label: string;
    isVisible?: boolean | null;
}
interface NavLinkSeparator {
    type: 'separator';
    component?: () => JSX.Element;
}

interface AccountPageLayoutProps {
    children: React.ReactNode;
    accountPageNav?: (NavLinkItem | NavLinkSeparator)[];
    isPreviewMode?: boolean;
}

declare function AccountPageLayoutWidget(props: Omit<AccountPageLayoutProps, 'isPreviewMode'>): JSX.Element;

declare function AccountHistoryPageLayoutWidget(props: {
    children: React.ReactNode;
}): JSX.Element;

declare const EditableInputWithHistory: z.ZodEnum<["email", "password", "displayname", "dateofbirth"]>;
declare type EditableInputWithHistory = z.infer<typeof EditableInputWithHistory>;
interface AccountHistoryPageDetailProps {
    activeType: EditableInputWithHistory;
}

declare function AccountHistoryPageDetailWidget(props: AccountHistoryPageDetailProps): JSX.Element;

declare function AccountOverviewWidget(): JSX.Element;

declare function ChangePasswordWidget(): JSX.Element;

declare function LinkedAccountsWidget(): JSX.Element;

declare function LinkPlatformAccountWidget(): JSX.Element;

declare function VerifyUserWidget(): JSX.Element;

declare function LinkAccountWithOneTimeCodeWidget(): JSX.Element;

interface PurchasedGamesProps {
    limit?: number;
    isPreviewMode?: boolean;
}

declare function PurchasedGamesWidget(props: Omit<PurchasedGamesProps, 'isPreviewMode'>): JSX.Element;

interface PurchasedKeysProps {
    page?: number;
}
declare function PurchasedKeys({ page }: PurchasedKeysProps): JSX.Element;

declare const PurchasedKeysWidget: typeof PurchasedKeys;

interface PurchasedOptionboxesProps {
    page: number;
}
declare function PurchasedOptionboxes({ page }: PurchasedOptionboxesProps): JSX.Element;

declare const PurchasedOptionboxesWidget: typeof PurchasedOptionboxes;

interface Props$1 {
    children: React.ReactNode;
    isPreviewMode?: boolean;
}
declare function PurchasedItemsLayoutWidget(props: Omit<Props$1, 'isPreviewMode'>): JSX.Element;

declare function PurchasedItemsWidget({ children }: {
    children: React.ReactNode;
}): JSX.Element;

interface OrderHistoryProps {
    page: number;
    isPreviewMode?: boolean;
}

declare function OrderHistoryWidget(props: Pick<OrderHistoryProps, 'page'>): JSX.Element;

interface Props {
    orderNo: string;
}
declare function OrderHistoryDetail({ orderNo }: Props): JSX.Element;

declare const OrderHistoryDetailWidget: typeof OrderHistoryDetail;

declare function RedeemCodeWidget(): JSX.Element;

declare function AccountDeletionWidget(): JSX.Element;

declare function AccountDeletionSuccessWidget(): JSX.Element;

declare function LegalAgreementsWidget(): JSX.Element;

declare function PersonalDataWidget(): JSX.Element;

declare function PaymentMethodsWidget(): JSX.Element;

declare const InvitationURLGenerator: ({ invitationId }: {
    invitationId: string;
}) => JSX.Element;

declare const LoginURLGenerator: () => JSX.Element;

export { AccountDeletionSuccessWidget, AccountDeletionWidget, AccountHistoryPageDetailWidget, AccountHistoryPageLayoutWidget, AccountOverviewWidget, AccountPageLayoutWidget, ChangeEmailWidget, ChangePasswordWidget, InvitationURLGenerator, LegalAgreementsWidget, LinkAccountWithOneTimeCodeWidget, LinkPlatformAccountWidget, LinkedAccountsWidget, LoginURLGenerator, OrderHistoryDetailWidget, OrderHistoryWidget, PaymentMethodsWidget, PersonalDataWidget, ProfileWidget, PurchasedGamesWidget, PurchasedItemsLayoutWidget, PurchasedItemsWidget, PurchasedKeysWidget, PurchasedOptionboxesWidget, RedeemCodeWidget, VerifyUserWidget };
