export declare enum AnimalStage {
    CALF = "calf",
    YEARLING = "yearling",
    ADULT = "adult",
    ELDER = "elder"
}
export declare enum AnimalStatus {
    HEALTHY = "healthy",
    PREGNANT = "pregnant",
    RECOVERING = "recovering",
    NEGLECTED = "neglected",
    RETIRED = "retired",
    DEAD = "dead"
}
export declare enum AnimalSex {
    MALE = "male",
    FEMALE = "female"
}
export declare enum RarityTier {
    COMMON = "common",
    UNCOMMON = "uncommon",
    RARE = "rare",
    LEGENDARY = "legendary"
}
export declare enum ListingType {
    FIXED = "fixed",
    AUCTION = "auction"
}
export declare enum ListingStatus {
    ACTIVE = "active",
    SOLD = "sold",
    EXPIRED = "expired",
    CANCELLED = "cancelled"
}
export declare enum ShowTier {
    ROOKIE = "rookie",
    PRO = "pro",
    ELITE = "elite"
}
export declare enum ShowStatus {
    OPEN = "open",
    JUDGING = "judging",
    COMPLETED = "completed"
}
export declare enum ClubRole {
    OWNER = "owner",
    OFFICER = "officer",
    MEMBER = "member"
}
export declare enum TransactionCategory {
    MARKET_SALE = "market_sale",
    MARKET_BUY = "market_buy",
    UPKEEP = "upkeep",
    FEE = "fee",
    REWARD = "reward",
    ADMIN_GRANT = "admin_grant",
    REFUND = "refund",
    STARTER = "starter"
}
export declare enum BuildingType {
    BARN_BASIC = "barn_basic",
    BARN_LARGE = "barn_large",
    FEED_STORAGE = "feed_storage",
    VET_CLINIC = "vet_clinic",
    SHOW_PREP_BARN = "show_prep_barn",
    BREEDING_CENTER = "breeding_center",
    STAFF_QUARTERS = "staff_quarters"
}
export declare enum BuildingStatus {
    CONSTRUCTING = "constructing",
    ACTIVE = "active",
    SUSPENDED = "suspended"
}
export interface Phenotype {
    weightScore: number;
    milkYieldScore: number;
    growthRateScore: number;
    temperamentScore: number;
    coatQualityScore: number;
    fertilityScore: number;
    hardinessScore: number;
    showPotentialScore: number;
}
export interface Animal {
    id: string;
    ownerId: string;
    ranchId: string;
    name: string;
    breed: string;
    sex: AnimalSex;
    bornAt: string;
    diedAt: string | null;
    stage: AnimalStage;
    health: number;
    condition: number;
    status: AnimalStatus;
    pregnancyEndAt: string | null;
    recoveryEndAt: string | null;
    sireId: string | null;
    damId: string | null;
    inbreedingCoefficient: number;
    rarityTier: RarityTier;
    phenotype: Phenotype;
    genotypeTested: boolean;
    createdAt: string;
}
export interface AnimalWithGenotype extends Animal {
    genotype: Phenotype;
}
export interface Ranch {
    id: string;
    ownerId: string;
    name: string;
    description: string;
    plotCount: number;
    maxPlotCount: number;
    herdCapacity: number;
    lastUpkeepAt: string;
    debtFlag: boolean;
    prestigeLevel: number;
    createdAt: string;
}
export interface Building {
    id: string;
    ranchId: string;
    buildingType: BuildingType;
    plotPosition: number;
    status: BuildingStatus;
    completeAt: string | null;
    builtAt: string | null;
}
export interface BuildingDefinition {
    type: BuildingType;
    name: string;
    description: string;
    cost: number;
    constructionHours: number;
    herdCapacityBonus: number;
    effects: Record<string, number>;
}
export interface User {
    id: string;
    email: string;
    username: string;
    createdAt: string;
    lastLoginAt: string;
    status: 'active' | 'suspended' | 'banned';
    goldBalance: number;
    premiumBalance: number;
    prestigePoints: number;
    marketRestrictedUntil: string | null;
    ranch?: Ranch;
}
export interface MarketListing {
    id: string;
    sellerId: string;
    sellerUsername: string;
    animalId: string | null;
    itemType: string | null;
    listingType: ListingType;
    price: number;
    buyoutPrice: number | null;
    currentBid: number | null;
    currentBidderId: string | null;
    expiresAt: string;
    status: ListingStatus;
    createdAt: string;
    animal?: Animal;
}
export interface Show {
    id: string;
    name: string;
    tier: ShowTier;
    entryFee: number;
    entryClosesAt: string;
    judgedAt: string | null;
    status: ShowStatus;
    seasonId: string | null;
    entryCount?: number;
}
export interface ShowEntry {
    id: string;
    showId: string;
    playerId: string;
    playerUsername: string;
    animalId: string;
    score: number | null;
    rank: number | null;
    rewardClaimed: boolean;
    animal?: Animal;
}
export interface Club {
    id: string;
    name: string;
    ownerId: string;
    ownerUsername: string;
    description: string;
    goldVault: number;
    memberCount: number;
    createdAt: string;
    myRole?: ClubRole;
}
export interface ClubMember {
    clubId: string;
    userId: string;
    username: string;
    role: ClubRole;
    joinedAt: string;
}
export interface Transaction {
    id: string;
    userId: string;
    amount: number;
    currency: 'gold' | 'premium';
    category: TransactionCategory;
    refId: string | null;
    balanceAfter: number;
    createdAt: string;
}
export interface AuthResponse {
    token: string;
    refreshToken: string;
    user: User;
}
export interface PaginatedResponse<T> {
    data: T[];
    total: number;
    page: number;
    pageSize: number;
    hasMore: boolean;
}
export interface ApiError {
    error: string;
    message: string;
    statusCode: number;
    details?: Record<string, string>;
}
export interface BreedPreview {
    sireId: string;
    damId: string;
    traits: {
        [key in keyof Phenotype]: {
            min: number;
            max: number;
            mean: number;
        };
    };
    rarityDistribution: {
        common: number;
        uncommon: number;
        rare: number;
        legendary: number;
    };
    inbreedingCoefficient: number;
    inbreedingWarning: boolean;
}
export interface DashboardData {
    ranch: Ranch;
    herdSummary: {
        total: number;
        needingFeed: number;
        pregnant: number;
        inShows: number;
    };
    alerts: DashboardAlert[];
    recentResults: ShowEntry[];
}
export interface DashboardAlert {
    type: 'ready_to_breed' | 'show_closing' | 'upkeep_due' | 'birth_ready' | 'recovery_done' | 'animal_sick';
    message: string;
    animalId?: string;
    showId?: string;
    urgency: 'low' | 'medium' | 'high';
}
export declare const BREEDS: readonly ["Angus", "Hereford", "Longhorn", "Holstein", "Brahman"];
export type Breed = typeof BREEDS[number];
export declare const TRAIT_LABELS: Record<keyof Phenotype, string>;
export declare const RARITY_COLORS: Record<RarityTier, string>;
export declare const BUILDING_DEFINITIONS: Record<BuildingType, BuildingDefinition>;
//# sourceMappingURL=index.d.ts.map