import type { Identifier, ISODateTime, ObjectEither, ObjectPrettify, UnionPrettify } from "typeforge";
export type AssetResellerData = ObjectPrettify<{
    userAssetId: Identifier;
    seller: {
        id: Identifier;
        type: "User" | "Group";
        name: string;
    };
    price: number;
    serialNumber: number;
}>;
export type AssetResaleData = {
    assetStock: number | null;
    sales: number;
    numberRemaining: number | null;
    recentAveragePrice: number;
    originalPrice: number | null;
    priceDataPoints: {
        value: number;
        date: ISODateTime;
    }[];
    volumeDataPoints: {
        value: number;
        date: ISODateTime;
    }[];
};
export type RawAssetResellersData = {
    previousPageCursor: string | null;
    nextPageCursor: string | null;
    data: AssetResellerData[];
};
export type AuthedUserDevExCashOutInfoData = {
    hasCurrencyOperationError: boolean;
    currencyOperationErrorMessage: string;
    showOnlyExchangeRates: boolean;
    meetsMembershipRequirements: boolean;
    emailIsVerified: boolean;
    isImbursementBlacklistUser: boolean;
    canProceedToCashout: boolean;
    showProgressBar: boolean;
    percentRobux: number;
    minRobuxToCashOut: number;
    maxRobuxCanCashOut: number;
    lastImbursementStatus: string;
    lastImbursementSubmissionDate: ISODateTime | null;
    conversionPercent: number;
};
export type GroupRevenueSummaryData = {
    recurringRobuxStipend: number;
    itemSaleRobux: number;
    purchasedRobux: number;
    tradeSystemRobux: number;
    pendingRobux: number;
    groupPayoutRobux: number;
    individualToGroupRobux: number;
    premiumPayouts: number;
    groupPremiumPayouts: number;
    adjustmentRobux: number;
    immersiveAdPayouts: number;
    subscriptionPayouts: number;
    subscriptionClawbacks: number;
    isShowImmersiveAdPayoutSummaryOnZeroEnabled: false;
    commissionRobux: number;
    publishingAdvanceRebates: number;
};
export type RawUserGroupPayoutEligibilityData<UserId extends Identifier> = {
    usersGroupPayoutEligibility: {
        [Key in UserId]: 'Undefined' | 'Eligible' | 'NotInGroup' | 'PayoutRestricted' | undefined;
    };
};
export type PrettifiedUserGroupPayoutEligibilityData<UserId extends Identifier> = {
    [Key in UserId]: 'Undefined' | 'Eligible' | 'NotInGroup' | 'PayoutRestricted' | undefined;
};
export type GroupTransactionType = UnionPrettify<"Sale" | "PublishingAdvanceRebates">;
type GroupSaleTransaction = ObjectPrettify<{
    id: Identifier;
    idHash: string;
    created: ISODateTime;
    isPending: boolean;
    agent: {
        id: Identifier;
        type: "User" | "Group";
        name: string;
    };
    details: {
        id: Identifier;
        name: string;
    } & ObjectEither<{
        type: "DeveloperProduct" | "GamePass";
        place: {
            placeId: Identifier;
            universeId: Identifier;
            name: string;
        };
    }, {
        type: "Asset";
    }> & {
        currency: {
            amount: number;
            type: "Robux";
        };
        purchaseToken: string | null;
    };
}>;
export type RawGroupTransactionHistoryData<Type extends GroupTransactionType> = {
    previousPageCursor?: string | null;
    nextPageCursor?: string | null;
    data: Type extends "Sale" ? GroupSaleTransaction[] : any[];
};
export type PrettifiedGroupTransactionHistoryData<Type extends GroupTransactionType> = Type extends "Sale" ? GroupSaleTransaction[] : any[];
export type AuthedUserEconomyMetadataData = {
    isMarketPlaceEnabled: boolean;
    isItemsXchangeEnabled: boolean;
    isGroupSalesAmountTooltipEnabled: boolean;
    isTransactionsRecordsDownloadEnabled: boolean;
    transactionRecordsDownloadEarliestYearDiff: number;
    isCommissionRecordsDownloadEnabled: boolean;
    isGroupCommissionsPageEnabled: boolean;
    isPublishingAdvanceRebatePageEnabled: boolean;
};
export {};
