import type * as TrophyApi from "../index";
/**
 * A leaderboard to create.
 */
export interface CreateLeaderboardRequestItem {
    /** The leaderboard name. */
    name: string;
    /** The leaderboard key. Only alphanumeric characters, hyphens, and underscores are permitted. */
    key: string;
    /** The leaderboard description. */
    description?: string;
    /** The initial user-facing status. Defaults to `inactive`. Use `scheduled` for leaderboards that should be active in the future and `finished` only when creating a leaderboard with an end date in the past. */
    status?: TrophyApi.CreateLeaderboardRequestItemStatus;
    /** What the leaderboard ranks by. */
    rankBy: TrophyApi.CreateLeaderboardRequestItemRankBy;
    /** The metric ID to rank by when `rankBy` is `metric`. */
    metricId?: string;
    /** The points system ID to rank by when `rankBy` is `points`. */
    pointsSystemId?: string;
    /** The maximum number of participants. Defaults to `1000`. */
    maxParticipants?: number;
    /** The leaderboard start date in YYYY-MM-DD format. Defaults to today when omitted. */
    start?: string;
    /** The optional leaderboard end date in YYYY-MM-DD format. */
    end?: string;
    /** When set, ranking only counts activity at or after this time of day in the user's timezone (HH:mm format). */
    startTime?: string;
    /** When set, ranking only counts activity before this time of day in the user's timezone (HH:mm format). */
    endTime?: string;
    /** The UUIDs of the active user attributes to break rankings down by. */
    breakdownAttributes?: string[];
    /** How often the leaderboard repeats. Omit for a non-recurring leaderboard. Streak leaderboards cannot repeat. */
    runUnit?: TrophyApi.CreateLeaderboardRequestItemRunUnit;
    /** The number of `runUnit`s between repeats. Required when `runUnit` is set. */
    runInterval?: number;
}
