/**
 * This file was auto-generated by openapi-typescript.
 * Do not make direct changes to the file.
 */

export interface paths {
    "/auth/login": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        /** Connexion par e-mail et mot de passe */
        post: operations["login"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/auth/demo-accounts": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /**
         * Comptes de démonstration (ADR-002 — jamais de secret)
         * @description ADR-002 : cette route est absente (404) quand DEMO_MODE n’est pas actif.
         */
        get: operations["listDemoAccounts"];
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/auth/demo-login": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        /**
         * Connexion 1 clic sur un compte de démonstration (ADR-002)
         * @description ADR-002 : cette route est absente (404) quand DEMO_MODE n’est pas actif.
         */
        post: operations["demoLogin"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/users/me": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /** Profil courant + matrice de permissions du rôle */
        get: operations["getMe"];
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/auth/activate": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        /** Activer un compte invité (lien 7 jours) — connecte directement */
        post: operations["activateAccount"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/categories": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /** Référentiels administrables (catégories d’équipement, types d’organes) */
        get: operations["listCategories"];
        put?: never;
        /** Ajouter une catégorie */
        post: operations["createCategory"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/categories/{id}": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        /** Renommer ou (dés)activer — jamais de suppression si utilisée */
        patch: operations["updateCategory"];
        trace?: never;
    };
    "/locations": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /** Sites et zones (liste plate, le client construit l’arbre) */
        get: operations["listLocations"];
        put?: never;
        /** Créer un site (sans parent) ou une zone (profondeur max 2) */
        post: operations["createLocation"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/locations/{id}": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        /** Modifier un emplacement */
        patch: operations["updateLocation"];
        trace?: never;
    };
    "/assets": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /** Inventaire des appareils */
        get: operations["listAssets"];
        put?: never;
        /** Créer un appareil (avec ses organes) — le QR découle de la référence */
        post: operations["createAsset"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/assets/options": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /** Options d’appareils pour le signalement (tout rôle authentifié) */
        get: operations["listAssetOptions"];
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/assets/{id}": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /** Fiche appareil (identité + organes) */
        get: operations["getAsset"];
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        /** Modifier un appareil (dont son statut d’équipement) */
        patch: operations["updateAsset"];
        trace?: never;
    };
    "/assets/{id}/components": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        /** Ajouter un organe (jamais d’emplacement propre) */
        post: operations["addAssetComponent"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/assets/{id}/components/{componentId}": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        post?: never;
        /** Retirer un organe */
        delete: operations["removeAssetComponent"];
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/teams": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /** Équipes et leurs membres */
        get: operations["listTeams"];
        put?: never;
        /** Créer une équipe */
        post: operations["createTeam"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/teams/{id}": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        /** Modifier une équipe (nom, description, membres) */
        patch: operations["updateTeam"];
        trace?: never;
    };
    "/users": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /** Personnes (statut dérivé : actif / invité / désactivé) */
        get: operations["listUsers"];
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/roles": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /** Les 7 rôles (pour l’invitation) */
        get: operations["listRoles"];
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/users/invitations": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        /** Inviter — crée le compte inactif et émet le lien d’activation (7 j) */
        post: operations["inviteUser"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/users/{id}/invitation": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        /** Régénérer le lien d’activation d’un compte non activé */
        post: operations["resendInvitation"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/users/{id}": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        /** Modifier une personne (rôle, équipes, activation du compte) */
        patch: operations["updateUser"];
        trace?: never;
    };
    "/documents": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /** Bibliothèque (filtrable par appareil ou OT) */
        get: operations["listDocuments"];
        put?: never;
        /** Téléverser (PDF/JPG/PNG, 20 Mo max, rattachement appareil OU OT requis) */
        post: operations["uploadDocument"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/documents/{id}/download": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /** Télécharger — streamé par l’API (MinIO jamais exposé) */
        get: operations["downloadDocument"];
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/documents/{id}/corpus": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        /** Inclure/exclure du corpus IA (D3 — réversible, effectif à la prochaine réindexation) */
        patch: operations["updateDocumentCorpus"];
        trace?: never;
    };
    "/documents/{id}": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        post?: never;
        /** Supprimer (permission d’édition sur la cible) */
        delete: operations["deleteDocument"];
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/analytics/summary": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /** Le tableau de la direction : coûts, pannes par organe (bilans), préventif, top équipements */
        get: operations["getAnalyticsSummary"];
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/assistant/ask": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        /** Assistant R5 — sourcé ou silencieux : extraits cités ou refus honnête (D2) */
        post: operations["askAssistant"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/assistant/suggest-bilan": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        /** Suggérer des codes de bilan depuis une description libre (D1 — l’humain valide) */
        post: operations["suggestBilan"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/assistant/reindex": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        /** Réindexer le corpus (bibliothèque PDF + bilans clôturés, anonymisés à l’ingestion — D4) */
        post: operations["reindexAssistant"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/assistant/transcribe": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        /** Dictée (R5 D5, opt-in) — l’audio est transcrit puis JAMAIS conservé, à relire avant tout usage */
        post: operations["transcribeAudio"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/search": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /** Recherche globale (OT, ascenseurs, sites) — chaque famille filtrée par la matrice */
        get: operations["globalSearch"];
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/partners": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /** Tiers (fournisseurs, syndics) — permission PURCHASE_ORDERS */
        get: operations["listPartners"];
        put?: never;
        /** Créer un tiers */
        post: operations["createPartner"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/partners/{id}": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        /** Modifier / (dés)activer un tiers */
        patch: operations["updatePartner"];
        trace?: never;
    };
    "/parts": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /** Stock de pièces — quantités DÉRIVÉES des mouvements */
        get: operations["listParts"];
        put?: never;
        /** Créer une pièce (référence P-#### générée) */
        post: operations["createPart"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/parts/{id}": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /** Fiche pièce : les mouvements SONT le stock */
        get: operations["getPart"];
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        /** Modifier une pièce (désignation, seuil, fournisseur…) */
        patch: operations["updatePart"];
        trace?: never;
    };
    "/parts/{id}/movements": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        /** Entrée manuelle (+) ou ajustement (± motif REQUIS) — jamais de saisie de stock */
        post: operations["addStockMovement"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/purchase-orders": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /** Bons de commande */
        get: operations["listPurchaseOrders"];
        put?: never;
        /** Créer un BC (brouillon) */
        post: operations["createPurchaseOrder"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/purchase-orders/{id}": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /** Fiche BC (lignes, total) */
        get: operations["getPurchaseOrder"];
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/purchase-orders/{id}/transition": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        /** Envoyer / réceptionner (→ entrées de stock, PU figés) / annuler */
        post: operations["transitionPurchaseOrder"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/work-orders/{id}/consume-part": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        /** Consommer une pièce sur l’OT — stock décrémenté, PRIX FIGÉ */
        post: operations["consumePart"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/work-orders/{id}/labor": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        /** Saisir de la main-d’œuvre — TAUX FIGÉ à la saisie */
        post: operations["addLaborTime"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/portal/assets/{reference}": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /** Résoudre le QR scanné (référence → appareil, préremplissage) */
        get: operations["getPortalAsset"];
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/portal/requests": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        /** Signaler sans compte — renvoie le jeton de suivi (à garder sur le téléphone) */
        post: operations["createPortalRequest"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/portal/requests/{reference}/{token}": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /** Suivi sans jargon (Reçu → Intervention → Résolu) — jeton requis */
        get: operations["getPortalRequestStatus"];
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/preventive/templates": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /** Gabarits de tâches du préventif (périodicité en mois) */
        get: operations["listTaskTemplates"];
        put?: never;
        /** Ajouter un gabarit */
        post: operations["createTaskTemplate"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/preventive/templates/{id}": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        /** Modifier / (dés)activer un gabarit — jamais de suppression si utilisé */
        patch: operations["updateTaskTemplate"];
        trace?: never;
    };
    "/preventive/generate": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        /** Générer la grille du mois — IDEMPOTENT (regénérer ne double rien) */
        post: operations["generatePreventive"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/preventive/status": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /** État du mois courant (générées, terminées, en retard, premiers contrôles) */
        get: operations["getPreventiveStatus"];
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/assets/{id}/meters": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /** Compteurs de l’appareil (relevés récents d’abord) */
        get: operations["getAssetMeters"];
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/assets/{id}/meter-readings": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        /** Enregistrer un relevé — strictement croissant */
        post: operations["addMeterReading"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/work-orders": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /** Ordres de travail (sans « voir autre » : seulement les siens) */
        get: operations["listWorkOrders"];
        put?: never;
        /** Créer un OT (statut Ouvert) */
        post: operations["createWorkOrder"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/work-orders/{id}": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /** Fiche OT (activité, checklist, bilan, transitions autorisées, blocages de clôture) */
        get: operations["getWorkOrder"];
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/work-orders/{id}/transition": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        /** Changer l’état (machine à états stricte ; DONE exige bilan + checklist) */
        post: operations["transitionWorkOrder"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/work-orders/{id}/comments": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        /** Commenter (activité chronologique) */
        post: operations["commentWorkOrder"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/work-orders/{id}/assignees": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        /** Assigner (remplace la liste) */
        put: operations["setWorkOrderAssignees"];
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/work-orders/{id}/report": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        /** Renseigner le bilan codé (null efface un champ) */
        put: operations["upsertWorkOrderReport"];
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/work-orders/{id}/checklist/{itemId}": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        /** Régler une tâche de la grille (Fait / N-A / à faire) */
        patch: operations["patchChecklistItem"];
        trace?: never;
    };
    "/requests": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /** Demandes (sans « voir autre » : seulement les siennes) */
        get: operations["listRequests"];
        put?: never;
        /** Signaler (interne — le portail public QR arrive en R2.4) */
        post: operations["createRequest"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/requests/{id}/approve": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        /** Approuver → crée l’OT lié (1-1, jamais de doublon) */
        post: operations["approveRequest"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/requests/{id}/reject": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        /** Rejeter — motif obligatoire, lisible côté demandeur */
        post: operations["rejectRequest"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/reference-values": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /** Référentiels du bilan codé (6 champs) */
        get: operations["listReferenceValues"];
        put?: never;
        /** Ajouter une valeur de référentiel */
        post: operations["createReferenceValue"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/reference-values/{id}": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        /** Renommer ou (dés)activer — jamais de suppression si utilisée */
        patch: operations["updateReferenceValue"];
        trace?: never;
    };
    "/health": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        /** État des dépendances (base, Redis, stockage) */
        get: operations["getHealth"];
        put?: never;
        post?: never;
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
}
export type webhooks = Record<string, never>;
export interface components {
    schemas: {
        AuthResponse: {
            accessToken: string;
            user: {
                /** Format: uuid */
                id: string;
                /** Format: email */
                email: string;
                displayName: string;
                role: {
                    /** Format: uuid */
                    id: string;
                    /** @enum {string} */
                    name: "Administrateur" | "Dispatcher" | "Technicien" | "Technicien limité" | "Gestionnaire" | "Demandeur" | "Vue seule";
                };
                isDemo: boolean;
            };
        };
        LoginRequest: {
            /** Format: email */
            email: string;
            password: string;
        };
        DemoAccountsResponse: {
            accounts: {
                /** Format: uuid */
                id: string;
                displayName: string;
                /** @enum {string} */
                roleName: "Administrateur" | "Dispatcher" | "Technicien" | "Technicien limité" | "Gestionnaire" | "Demandeur" | "Vue seule";
                initials: string;
            }[];
        };
        DemoLoginRequest: {
            /** Format: uuid */
            userId: string;
        };
        MeResponse: {
            /** Format: uuid */
            id: string;
            /** Format: email */
            email: string;
            displayName: string;
            role: {
                /** Format: uuid */
                id: string;
                /** @enum {string} */
                name: "Administrateur" | "Dispatcher" | "Technicien" | "Technicien limité" | "Gestionnaire" | "Demandeur" | "Vue seule";
            };
            isDemo: boolean;
            permissions: {
                /** @enum {string} */
                objectCategory: "WORK_ORDERS" | "REQUESTS" | "ASSETS" | "LOCATIONS" | "METERS" | "PARTS" | "PURCHASE_ORDERS" | "PEOPLE_TEAMS" | "ANALYTICS" | "SETTINGS";
                canView: boolean;
                canViewOther: boolean;
                canCreate: boolean;
                canEdit: boolean;
                canDelete: boolean;
            }[];
        };
        ActivateRequest: {
            token: string;
            password: string;
        };
        CategoriesResponse: {
            categories: {
                /** Format: uuid */
                id: string;
                /** @enum {string} */
                kind: "EQUIPMENT" | "COMPONENT_TYPE";
                name: string;
                isActive: boolean;
                usageCount: number;
            }[];
        };
        Category: {
            /** Format: uuid */
            id: string;
            /** @enum {string} */
            kind: "EQUIPMENT" | "COMPONENT_TYPE";
            name: string;
            isActive: boolean;
            usageCount: number;
        };
        CategoryCreate: {
            /** @enum {string} */
            kind: "EQUIPMENT" | "COMPONENT_TYPE";
            name: string;
        };
        CategoryUpdate: {
            name?: string;
            isActive?: boolean;
        };
        LocationsResponse: {
            locations: {
                /** Format: uuid */
                id: string;
                name: string;
                parentId: string | null;
                address: string | null;
                city: string | null;
                guardianName: string | null;
                guardianPhone: string | null;
                latitude: number | null;
                longitude: number | null;
                partnerId: string | null;
                partnerName: string | null;
                assetCount: number;
            }[];
        };
        Location: {
            /** Format: uuid */
            id: string;
            name: string;
            parentId: string | null;
            address: string | null;
            city: string | null;
            guardianName: string | null;
            guardianPhone: string | null;
            latitude: number | null;
            longitude: number | null;
            partnerId: string | null;
            partnerName: string | null;
            assetCount: number;
        };
        LocationCreate: {
            name: string;
            /** Format: uuid */
            parentId?: string;
            address?: string;
            city?: string;
            guardianName?: string;
            guardianPhone?: string;
            latitude?: number;
            longitude?: number;
            partnerId?: string | null;
        };
        LocationUpdate: {
            name?: string;
            /** Format: uuid */
            parentId?: string;
            address?: string;
            city?: string;
            guardianName?: string;
            guardianPhone?: string;
            latitude?: number;
            longitude?: number;
            partnerId?: string | null;
        };
        AssetsResponse: {
            assets: {
                /** Format: uuid */
                id: string;
                reference: string;
                brand: string;
                model: string | null;
                serialNumber: string | null;
                commissionedAt: string | null;
                loadKg: number | null;
                floors: number | null;
                /** @enum {string} */
                status: "IN_SERVICE" | "OUT_OF_SERVICE" | "UNDER_MAINTENANCE";
                /** Format: uuid */
                categoryId: string;
                categoryName: string;
                /** Format: uuid */
                locationId: string;
                locationName: string;
                siteName: string;
                componentCount: number;
            }[];
        };
        AssetOptionsResponse: {
            options: {
                /** Format: uuid */
                id: string;
                reference: string;
                siteName: string;
            }[];
        };
        AssetDetail: {
            /** Format: uuid */
            id: string;
            reference: string;
            brand: string;
            model: string | null;
            serialNumber: string | null;
            commissionedAt: string | null;
            loadKg: number | null;
            floors: number | null;
            /** @enum {string} */
            status: "IN_SERVICE" | "OUT_OF_SERVICE" | "UNDER_MAINTENANCE";
            /** Format: uuid */
            categoryId: string;
            categoryName: string;
            /** Format: uuid */
            locationId: string;
            locationName: string;
            siteName: string;
            componentCount: number;
            components: {
                /** Format: uuid */
                id: string;
                /** Format: uuid */
                typeId: string;
                typeName: string;
                designation: string | null;
            }[];
        };
        AssetCreate: {
            reference: string;
            brand: string;
            model?: string;
            serialNumber?: string;
            /** Format: date-time */
            commissionedAt?: string;
            loadKg?: number;
            floors?: number;
            /** Format: uuid */
            categoryId: string;
            /** Format: uuid */
            locationId: string;
            components?: {
                /** Format: uuid */
                typeId: string;
                designation?: string;
            }[];
        };
        AssetUpdate: {
            reference?: string;
            brand?: string;
            model?: string;
            serialNumber?: string;
            /** Format: date-time */
            commissionedAt?: string;
            loadKg?: number;
            floors?: number;
            /** Format: uuid */
            categoryId?: string;
            /** Format: uuid */
            locationId?: string;
            /** @enum {string} */
            status?: "IN_SERVICE" | "OUT_OF_SERVICE" | "UNDER_MAINTENANCE";
        };
        AssetComponent: {
            /** Format: uuid */
            id: string;
            /** Format: uuid */
            typeId: string;
            typeName: string;
            designation: string | null;
        };
        AssetComponentCreate: {
            /** Format: uuid */
            typeId: string;
            designation?: string;
        };
        TeamsResponse: {
            teams: {
                /** Format: uuid */
                id: string;
                name: string;
                description: string | null;
                members: {
                    /** Format: uuid */
                    id: string;
                    displayName: string;
                    roleName: string;
                    initials: string;
                }[];
            }[];
        };
        Team: {
            /** Format: uuid */
            id: string;
            name: string;
            description: string | null;
            members: {
                /** Format: uuid */
                id: string;
                displayName: string;
                roleName: string;
                initials: string;
            }[];
        };
        TeamCreate: {
            name: string;
            description?: string;
            memberIds?: string[];
        };
        TeamUpdate: {
            name?: string;
            description?: string;
            memberIds?: string[];
        };
        UsersResponse: {
            users: {
                /** Format: uuid */
                id: string;
                /** Format: email */
                email: string;
                displayName: string;
                phone: string | null;
                role: {
                    /** Format: uuid */
                    id: string;
                    /** @enum {string} */
                    name: "Administrateur" | "Dispatcher" | "Technicien" | "Technicien limité" | "Gestionnaire" | "Demandeur" | "Vue seule";
                };
                teams: {
                    /** Format: uuid */
                    id: string;
                    name: string;
                }[];
                /** @enum {string} */
                status: "active" | "invited" | "disabled";
                isDemo: boolean;
                hourlyRate: number | null;
            }[];
        };
        RolesResponse: {
            roles: {
                /** Format: uuid */
                id: string;
                /** @enum {string} */
                name: "Administrateur" | "Dispatcher" | "Technicien" | "Technicien limité" | "Gestionnaire" | "Demandeur" | "Vue seule";
            }[];
        };
        InvitationResponse: {
            /** Format: uuid */
            userId: string;
            activationToken: string;
            /** Format: date-time */
            expiresAt: string;
        };
        InvitationCreate: {
            /** Format: email */
            email: string;
            displayName: string;
            /** Format: uuid */
            roleId: string;
            teamIds?: string[];
            phone?: string;
        };
        UserAdmin: {
            /** Format: uuid */
            id: string;
            /** Format: email */
            email: string;
            displayName: string;
            phone: string | null;
            role: {
                /** Format: uuid */
                id: string;
                /** @enum {string} */
                name: "Administrateur" | "Dispatcher" | "Technicien" | "Technicien limité" | "Gestionnaire" | "Demandeur" | "Vue seule";
            };
            teams: {
                /** Format: uuid */
                id: string;
                name: string;
            }[];
            /** @enum {string} */
            status: "active" | "invited" | "disabled";
            isDemo: boolean;
            hourlyRate: number | null;
        };
        UserUpdate: {
            displayName?: string;
            phone?: string;
            /** Format: uuid */
            roleId?: string;
            teamIds?: string[];
            isActive?: boolean;
            hourlyRate?: number | null;
        };
        DocumentsResponse: {
            documents: {
                /** Format: uuid */
                id: string;
                /** @enum {string} */
                kind: "NOTICE" | "CERTIFICATE" | "PHOTO" | "OTHER";
                fileName: string;
                size: number;
                contentType: string;
                assetReference: string | null;
                workOrderReference: string | null;
                uploadedByName: string | null;
                /** Format: date-time */
                createdAt: string;
                inCorpus: boolean;
                indexedAt: string | null;
                chunkCount: number;
            }[];
        };
        Document: {
            /** Format: uuid */
            id: string;
            /** @enum {string} */
            kind: "NOTICE" | "CERTIFICATE" | "PHOTO" | "OTHER";
            fileName: string;
            size: number;
            contentType: string;
            assetReference: string | null;
            workOrderReference: string | null;
            uploadedByName: string | null;
            /** Format: date-time */
            createdAt: string;
            inCorpus: boolean;
            indexedAt: string | null;
            chunkCount: number;
        };
        DocumentCorpusUpdate: {
            inCorpus: boolean;
        };
        AnalyticsSummary: {
            months: number;
            monthCost: number;
            previousMonthCost: number;
            closed: {
                total: number;
                preventive: number;
            };
            preventiveRate: number | null;
            avgResolutionDays: number | null;
            failuresByComponent: {
                label: string;
                count: number;
            }[];
            costsByMonth: {
                month: string;
                total: number;
            }[];
            topAssets: {
                reference: string;
                siteName: string;
                correctives: number;
                partsCost: number;
                laborCost: number;
                total: number;
            }[];
        };
        AssistantAnswer: {
            /** @enum {string} */
            mode: "EXTRACTIVE" | "GENERATED" | "REFUSAL";
            answer: string | null;
            excerpts: {
                /** @enum {string} */
                sourceType: "DOCUMENT" | "WORK_ORDER";
                documentId: string | null;
                workOrderId: string | null;
                title: string;
                locator: string;
                content: string;
                score: number;
            }[];
            corpus: {
                documents: number;
                reports: number;
            };
        };
        AssistantAsk: {
            question: string;
        };
        BilanSuggestions: {
            suggestions: {
                /** @enum {string} */
                field: "DOOR_STATE" | "CABIN_POSITION" | "ANOMALY" | "EXTERNAL_CAUSE" | "ACTION_TAKEN" | "COMPONENT_CONCERNED";
                /** Format: uuid */
                valueId: string;
                label: string;
                /** @enum {string} */
                confidence: "HIGH" | "MEDIUM";
                similarReports: number;
                score: number;
            }[];
        };
        SuggestBilan: {
            description: string;
        };
        ReindexResult: {
            documentsIndexed: number;
            documentsSkipped: number;
            reportsIndexed: number;
            chunks: number;
        };
        TranscriptionResult: {
            text: string;
        };
        SearchResponse: {
            workOrders: {
                /** Format: uuid */
                id: string;
                reference: string;
                title: string;
                /** @enum {string} */
                status: "OPEN" | "IN_PROGRESS" | "ON_HOLD" | "DONE" | "CANCELLED";
            }[];
            assets: {
                /** Format: uuid */
                id: string;
                reference: string;
                brand: string;
                model: string | null;
                siteName: string;
            }[];
            sites: {
                /** Format: uuid */
                id: string;
                name: string;
                city: string | null;
            }[];
        };
        PartnersResponse: {
            partners: {
                /** Format: uuid */
                id: string;
                name: string;
                /** @enum {string} */
                kind: "SUPPLIER" | "CLIENT";
                contactName: string | null;
                phone: string | null;
                email: string | null;
                city: string | null;
                isActive: boolean;
                openOrders: number;
                siteNames: string[];
            }[];
        };
        Partner: {
            /** Format: uuid */
            id: string;
            name: string;
            /** @enum {string} */
            kind: "SUPPLIER" | "CLIENT";
            contactName: string | null;
            phone: string | null;
            email: string | null;
            city: string | null;
            isActive: boolean;
            openOrders: number;
            siteNames: string[];
        };
        PartnerCreate: {
            name: string;
            /** @enum {string} */
            kind: "SUPPLIER" | "CLIENT";
            contactName?: string;
            phone?: string;
            /** Format: email */
            email?: string;
            city?: string;
        };
        PartnerUpdate: {
            name?: string;
            /** @enum {string} */
            kind?: "SUPPLIER" | "CLIENT";
            contactName?: string;
            phone?: string;
            /** Format: email */
            email?: string;
            city?: string;
            isActive?: boolean;
        };
        PartsResponse: {
            parts: {
                /** Format: uuid */
                id: string;
                reference: string;
                designation: string;
                threshold: number;
                lastUnitPrice: number | null;
                compatible: string | null;
                supplierId: string | null;
                supplierName: string | null;
                isActive: boolean;
                stock: number;
                belowThreshold: boolean;
            }[];
        };
        PartDetail: {
            /** Format: uuid */
            id: string;
            reference: string;
            designation: string;
            threshold: number;
            lastUnitPrice: number | null;
            compatible: string | null;
            supplierId: string | null;
            supplierName: string | null;
            isActive: boolean;
            stock: number;
            belowThreshold: boolean;
            movements: {
                /** Format: uuid */
                id: string;
                /** @enum {string} */
                kind: "RECEIPT" | "ENTRY" | "CONSUMPTION" | "ADJUSTMENT";
                quantity: number;
                unitPrice: number | null;
                reason: string | null;
                workOrderReference: string | null;
                purchaseOrderReference: string | null;
                byName: string | null;
                /** Format: date-time */
                createdAt: string;
            }[];
        };
        PartCreate: {
            designation: string;
            threshold?: number;
            /** Format: uuid */
            supplierId?: string;
            compatible?: string;
            initialPrice?: number;
        };
        PartUpdate: {
            designation?: string;
            threshold?: number;
            supplierId?: string | null;
            compatible?: string | null;
            isActive?: boolean;
        };
        StockMovementCreate: {
            /** @enum {string} */
            kind: "ENTRY" | "ADJUSTMENT";
            quantity: number;
            reason?: string;
        };
        PurchaseOrdersResponse: {
            purchaseOrders: {
                /** Format: uuid */
                id: string;
                reference: string;
                /** @enum {string} */
                status: "DRAFT" | "SENT" | "RECEIVED" | "CANCELLED";
                /** Format: uuid */
                supplierId: string;
                supplierName: string;
                lines: {
                    /** Format: uuid */
                    id: string;
                    /** Format: uuid */
                    partId: string;
                    partReference: string;
                    designation: string;
                    quantity: number;
                    unitPrice: number;
                }[];
                total: number;
                sentAt: string | null;
                receivedAt: string | null;
                /** Format: date-time */
                createdAt: string;
            }[];
        };
        PurchaseOrder: {
            /** Format: uuid */
            id: string;
            reference: string;
            /** @enum {string} */
            status: "DRAFT" | "SENT" | "RECEIVED" | "CANCELLED";
            /** Format: uuid */
            supplierId: string;
            supplierName: string;
            lines: {
                /** Format: uuid */
                id: string;
                /** Format: uuid */
                partId: string;
                partReference: string;
                designation: string;
                quantity: number;
                unitPrice: number;
            }[];
            total: number;
            sentAt: string | null;
            receivedAt: string | null;
            /** Format: date-time */
            createdAt: string;
        };
        PurchaseOrderCreate: {
            /** Format: uuid */
            supplierId: string;
            lines: {
                /** Format: uuid */
                partId: string;
                quantity: number;
                unitPrice: number;
            }[];
        };
        PurchaseOrderTransition: {
            /** @enum {string} */
            to: "SENT" | "RECEIVED" | "CANCELLED";
        };
        WorkOrderDetail: {
            /** Format: uuid */
            id: string;
            reference: string;
            title: string;
            /** @enum {string} */
            type: "CORRECTIVE" | "PREVENTIVE" | "WORKS";
            /** @enum {string} */
            status: "OPEN" | "IN_PROGRESS" | "ON_HOLD" | "DONE" | "CANCELLED";
            /** @enum {string} */
            priority: "NONE" | "LOW" | "MEDIUM" | "HIGH" | "PERSON_TRAPPED";
            /** Format: uuid */
            assetId: string;
            assetReference: string;
            siteName: string;
            dueDate: string | null;
            assignees: {
                /** Format: uuid */
                id: string;
                displayName: string;
                initials: string;
            }[];
            /** Format: date-time */
            createdAt: string;
            description: string | null;
            locationName: string;
            startedAt: string | null;
            completedAt: string | null;
            cancelledAt: string | null;
            createdBy: {
                /** Format: uuid */
                id: string;
                displayName: string;
                initials: string;
            } | null;
            request: {
                /** Format: uuid */
                id: string;
                reference: string;
                requesterLabel: string;
            } | null;
            events: {
                /** Format: uuid */
                id: string;
                kind: string;
                message: string | null;
                by: {
                    /** Format: uuid */
                    id: string;
                    displayName: string;
                    initials: string;
                } | null;
                /** Format: date-time */
                createdAt: string;
            }[];
            checklist: {
                /** Format: uuid */
                id: string;
                label: string;
                /** @enum {string} */
                state: "PENDING" | "DONE" | "NA";
                doneBy: {
                    /** Format: uuid */
                    id: string;
                    displayName: string;
                    initials: string;
                } | null;
                doneAt: string | null;
            }[];
            report: {
                note: string | null;
                doorState: {
                    /** Format: uuid */
                    id: string;
                    label: string;
                } | null;
                cabinPosition: {
                    /** Format: uuid */
                    id: string;
                    label: string;
                } | null;
                anomaly: {
                    /** Format: uuid */
                    id: string;
                    label: string;
                } | null;
                externalCause: {
                    /** Format: uuid */
                    id: string;
                    label: string;
                } | null;
                actionTaken: {
                    /** Format: uuid */
                    id: string;
                    label: string;
                } | null;
                componentConcerned: {
                    /** Format: uuid */
                    id: string;
                    label: string;
                } | null;
            } | null;
            costs: {
                parts: {
                    /** Format: uuid */
                    id: string;
                    designation: string;
                    quantity: number;
                    unitPrice: number;
                    total: number;
                }[];
                labor: {
                    /** Format: uuid */
                    id: string;
                    displayName: string;
                    minutes: number;
                    hourlyRate: number;
                    total: number;
                    note: string | null;
                }[];
                total: number;
            };
            allowedTransitions: ("OPEN" | "IN_PROGRESS" | "ON_HOLD" | "DONE" | "CANCELLED")[];
            closureBlockers: string[];
            /** Format: date-time */
            updatedAt: string;
        };
        ConsumePart: {
            /** Format: uuid */
            partId: string;
            quantity: number;
        };
        LaborTimeCreate: {
            minutes: number;
            /** Format: uuid */
            userId?: string;
            note?: string;
        };
        PortalAsset: {
            reference: string;
            siteName: string;
            locationName: string;
        };
        PortalRequestCreated: {
            reference: string;
            description: string;
            isPersonTrapped: boolean;
            /** @enum {string} */
            status: "RECEIVED" | "APPROVED" | "REJECTED";
            /** @enum {string} */
            step: "RECEIVED" | "IN_PROGRESS" | "RESOLVED";
            rejectionReason: string | null;
            /** Format: date-time */
            createdAt: string;
            publicToken: string;
        };
        PortalRequestCreate: {
            assetReference: string;
            description: string;
            isPersonTrapped?: boolean;
            requesterName?: string;
        };
        PortalRequestStatus: {
            reference: string;
            description: string;
            isPersonTrapped: boolean;
            /** @enum {string} */
            status: "RECEIVED" | "APPROVED" | "REJECTED";
            /** @enum {string} */
            step: "RECEIVED" | "IN_PROGRESS" | "RESOLVED";
            rejectionReason: string | null;
            /** Format: date-time */
            createdAt: string;
        };
        TaskTemplatesResponse: {
            templates: {
                /** Format: uuid */
                id: string;
                label: string;
                periodMonths: number;
                isRegulatory: boolean;
                isActive: boolean;
                componentTypeId: string | null;
                componentTypeName: string | null;
            }[];
        };
        TaskTemplate: {
            /** Format: uuid */
            id: string;
            label: string;
            periodMonths: number;
            isRegulatory: boolean;
            isActive: boolean;
            componentTypeId: string | null;
            componentTypeName: string | null;
        };
        TaskTemplateCreate: {
            label: string;
            periodMonths: number;
            /** Format: uuid */
            componentTypeId?: string;
            isRegulatory?: boolean;
        };
        TaskTemplateUpdate: {
            label?: string;
            periodMonths?: number;
            componentTypeId?: string | null;
            isRegulatory?: boolean;
            isActive?: boolean;
        };
        PreventiveGenerationResult: {
            month: string;
            created: number;
            skipped: number;
            firstControls: number;
            references: string[];
        };
        PreventiveGenerate: {
            month?: string;
        };
        PreventiveStatus: {
            month: string;
            assetsUnderContract: number;
            generated: number;
            done: number;
            late: number;
            firstControls: number;
        };
        MetersResponse: {
            meters: {
                /** @enum {string} */
                kind: "RUNNING_HOURS" | "STARTS";
                readings: {
                    /** Format: uuid */
                    id: string;
                    value: number;
                    readBy: {
                        /** Format: uuid */
                        id: string;
                        displayName: string;
                    } | null;
                    /** Format: date-time */
                    createdAt: string;
                }[];
            }[];
        };
        MeterReadingCreate: {
            /** @enum {string} */
            kind: "RUNNING_HOURS" | "STARTS";
            value: number;
        };
        WorkOrdersResponse: {
            workOrders: {
                /** Format: uuid */
                id: string;
                reference: string;
                title: string;
                /** @enum {string} */
                type: "CORRECTIVE" | "PREVENTIVE" | "WORKS";
                /** @enum {string} */
                status: "OPEN" | "IN_PROGRESS" | "ON_HOLD" | "DONE" | "CANCELLED";
                /** @enum {string} */
                priority: "NONE" | "LOW" | "MEDIUM" | "HIGH" | "PERSON_TRAPPED";
                /** Format: uuid */
                assetId: string;
                assetReference: string;
                siteName: string;
                dueDate: string | null;
                assignees: {
                    /** Format: uuid */
                    id: string;
                    displayName: string;
                    initials: string;
                }[];
                /** Format: date-time */
                createdAt: string;
            }[];
        };
        WorkOrderCreate: {
            title: string;
            description?: string;
            /** @enum {string} */
            type: "CORRECTIVE" | "PREVENTIVE" | "WORKS";
            /** @enum {string} */
            priority?: "NONE" | "LOW" | "MEDIUM" | "HIGH" | "PERSON_TRAPPED";
            /** Format: uuid */
            assetId: string;
            /** Format: date-time */
            dueDate?: string;
            assigneeIds?: string[];
        };
        TransitionRequest: {
            /** @enum {string} */
            to: "OPEN" | "IN_PROGRESS" | "ON_HOLD" | "DONE" | "CANCELLED";
            comment?: string;
            /** Format: date-time */
            baseUpdatedAt?: string;
        };
        CommentCreate: {
            message: string;
        };
        AssigneesUpdate: {
            assigneeIds: string[];
        };
        ReportUpsert: {
            note?: string | null;
            doorStateId?: string | null;
            cabinPositionId?: string | null;
            anomalyId?: string | null;
            externalCauseId?: string | null;
            actionTakenId?: string | null;
            componentConcernedId?: string | null;
            /** Format: date-time */
            baseUpdatedAt?: string;
        };
        ChecklistItem: {
            /** Format: uuid */
            id: string;
            label: string;
            /** @enum {string} */
            state: "PENDING" | "DONE" | "NA";
            doneBy: {
                /** Format: uuid */
                id: string;
                displayName: string;
                initials: string;
            } | null;
            doneAt: string | null;
        };
        ChecklistPatch: {
            /** @enum {string} */
            state: "PENDING" | "DONE" | "NA";
            /** Format: date-time */
            baseUpdatedAt?: string;
        };
        RequestsResponse: {
            requests: {
                /** Format: uuid */
                id: string;
                reference: string;
                description: string;
                isPersonTrapped: boolean;
                /** @enum {string} */
                status: "RECEIVED" | "APPROVED" | "REJECTED";
                rejectionReason: string | null;
                /** Format: uuid */
                assetId: string;
                assetReference: string;
                siteName: string;
                requesterLabel: string;
                workOrder: {
                    /** Format: uuid */
                    id: string;
                    reference: string;
                    /** @enum {string} */
                    status: "OPEN" | "IN_PROGRESS" | "ON_HOLD" | "DONE" | "CANCELLED";
                } | null;
                /** Format: date-time */
                createdAt: string;
            }[];
        };
        RequestSummary: {
            /** Format: uuid */
            id: string;
            reference: string;
            description: string;
            isPersonTrapped: boolean;
            /** @enum {string} */
            status: "RECEIVED" | "APPROVED" | "REJECTED";
            rejectionReason: string | null;
            /** Format: uuid */
            assetId: string;
            assetReference: string;
            siteName: string;
            requesterLabel: string;
            workOrder: {
                /** Format: uuid */
                id: string;
                reference: string;
                /** @enum {string} */
                status: "OPEN" | "IN_PROGRESS" | "ON_HOLD" | "DONE" | "CANCELLED";
            } | null;
            /** Format: date-time */
            createdAt: string;
        };
        RequestCreate: {
            /** Format: uuid */
            assetId: string;
            description: string;
            isPersonTrapped?: boolean;
        };
        RequestApprove: {
            title?: string;
            /** @enum {string} */
            priority?: "NONE" | "LOW" | "MEDIUM" | "HIGH" | "PERSON_TRAPPED";
            assigneeIds?: string[];
            /** Format: date-time */
            dueDate?: string;
        };
        RequestReject: {
            reason: string;
        };
        ReferenceValuesResponse: {
            referenceValues: {
                /** Format: uuid */
                id: string;
                /** @enum {string} */
                field: "DOOR_STATE" | "CABIN_POSITION" | "ANOMALY" | "EXTERNAL_CAUSE" | "ACTION_TAKEN" | "COMPONENT_CONCERNED";
                label: string;
                isActive: boolean;
                usageCount: number;
            }[];
        };
        ReferenceValue: {
            /** Format: uuid */
            id: string;
            /** @enum {string} */
            field: "DOOR_STATE" | "CABIN_POSITION" | "ANOMALY" | "EXTERNAL_CAUSE" | "ACTION_TAKEN" | "COMPONENT_CONCERNED";
            label: string;
            isActive: boolean;
            usageCount: number;
        };
        ReferenceValueCreate: {
            /** @enum {string} */
            field: "DOOR_STATE" | "CABIN_POSITION" | "ANOMALY" | "EXTERNAL_CAUSE" | "ACTION_TAKEN" | "COMPONENT_CONCERNED";
            label: string;
        };
        ReferenceValueUpdate: {
            label?: string;
            isActive?: boolean;
        };
        HealthResponse: {
            /** @enum {string} */
            status: "ok" | "degraded";
            services: {
                /** @enum {string} */
                database: "up" | "down";
                /** @enum {string} */
                redis: "up" | "down";
                /** @enum {string} */
                storage: "up" | "down";
            };
        };
    };
    responses: never;
    parameters: never;
    requestBodies: never;
    headers: never;
    pathItems: never;
}
export type $defs = Record<string, never>;
export interface operations {
    login: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": components["schemas"]["LoginRequest"];
            };
        };
        responses: {
            /** @description Jeton émis */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["AuthResponse"];
                };
            };
            /** @description Identifiants invalides ou compte inactif */
            401: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    listDemoAccounts: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Comptes isDemo actifs */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["DemoAccountsResponse"];
                };
            };
        };
    };
    demoLogin: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": components["schemas"]["DemoLoginRequest"];
            };
        };
        responses: {
            /** @description Jeton émis */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["AuthResponse"];
                };
            };
            /** @description Le compte n’est pas un compte de démonstration */
            403: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
            /** @description Compte inconnu */
            404: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    getMe: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Profil */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["MeResponse"];
                };
            };
            /** @description Non authentifié */
            401: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    activateAccount: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": components["schemas"]["ActivateRequest"];
            };
        };
        responses: {
            /** @description Compte activé et connecté */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["AuthResponse"];
                };
            };
            /** @description Lien invalide ou expiré */
            400: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    listCategories: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Liste */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["CategoriesResponse"];
                };
            };
        };
    };
    createCategory: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": components["schemas"]["CategoryCreate"];
            };
        };
        responses: {
            /** @description Créée */
            201: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["Category"];
                };
            };
            /** @description Nom déjà utilisé pour ce type */
            409: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    updateCategory: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                id: string;
            };
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": components["schemas"]["CategoryUpdate"];
            };
        };
        responses: {
            /** @description Mise à jour */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["Category"];
                };
            };
            /** @description Inconnue */
            404: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    listLocations: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Liste */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["LocationsResponse"];
                };
            };
        };
    };
    createLocation: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": components["schemas"]["LocationCreate"];
            };
        };
        responses: {
            /** @description Créé */
            201: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["Location"];
                };
            };
            /** @description Hiérarchie trop profonde */
            400: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    updateLocation: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                id: string;
            };
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": components["schemas"]["LocationUpdate"];
            };
        };
        responses: {
            /** @description Mis à jour */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["Location"];
                };
            };
            /** @description Inconnu */
            404: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    listAssets: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Liste */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["AssetsResponse"];
                };
            };
        };
    };
    createAsset: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": components["schemas"]["AssetCreate"];
            };
        };
        responses: {
            /** @description Créé */
            201: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["AssetDetail"];
                };
            };
            /** @description Référence déjà utilisée */
            409: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    listAssetOptions: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Options */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["AssetOptionsResponse"];
                };
            };
        };
    };
    getAsset: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Fiche */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["AssetDetail"];
                };
            };
            /** @description Inconnu */
            404: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    updateAsset: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                id: string;
            };
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": components["schemas"]["AssetUpdate"];
            };
        };
        responses: {
            /** @description Mis à jour */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["AssetDetail"];
                };
            };
            /** @description Inconnu */
            404: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    addAssetComponent: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                id: string;
            };
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": components["schemas"]["AssetComponentCreate"];
            };
        };
        responses: {
            /** @description Ajouté */
            201: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["AssetComponent"];
                };
            };
            /** @description Le type choisi n’est pas un type d’organe */
            400: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    removeAssetComponent: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                id: string;
                componentId: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Retiré */
            204: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
            /** @description Inconnu */
            404: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    listTeams: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Liste */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["TeamsResponse"];
                };
            };
        };
    };
    createTeam: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": components["schemas"]["TeamCreate"];
            };
        };
        responses: {
            /** @description Créée */
            201: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["Team"];
                };
            };
            /** @description Nom déjà utilisé */
            409: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    updateTeam: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                id: string;
            };
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": components["schemas"]["TeamUpdate"];
            };
        };
        responses: {
            /** @description Mise à jour */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["Team"];
                };
            };
            /** @description Inconnue */
            404: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    listUsers: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Liste */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["UsersResponse"];
                };
            };
        };
    };
    listRoles: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Liste */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["RolesResponse"];
                };
            };
        };
    };
    inviteUser: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": components["schemas"]["InvitationCreate"];
            };
        };
        responses: {
            /** @description Invitation émise */
            201: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["InvitationResponse"];
                };
            };
            /** @description Email déjà utilisé */
            409: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    resendInvitation: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Nouveau lien */
            201: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["InvitationResponse"];
                };
            };
            /** @description Compte déjà activé */
            409: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    updateUser: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                id: string;
            };
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": components["schemas"]["UserUpdate"];
            };
        };
        responses: {
            /** @description Mise à jour */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["UserAdmin"];
                };
            };
            /** @description Inconnue */
            404: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    listDocuments: {
        parameters: {
            query?: {
                assetId?: string;
                workOrderId?: string;
                kind?: string;
            };
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Liste */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["DocumentsResponse"];
                };
            };
        };
    };
    uploadDocument: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody: {
            content: {
                "multipart/form-data": {
                    /** Format: binary */
                    file: string;
                    kind?: string;
                    assetId?: string;
                    workOrderId?: string;
                };
            };
        };
        responses: {
            /** @description Document rangé */
            201: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["Document"];
                };
            };
            /** @description Type/taille refusé ou rattachement manquant */
            400: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    downloadDocument: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Fichier */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
            /** @description Inconnu */
            404: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    updateDocumentCorpus: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                id: string;
            };
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": components["schemas"]["DocumentCorpusUpdate"];
            };
        };
        responses: {
            /** @description Document mis à jour */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["Document"];
                };
            };
            /** @description Inconnu */
            404: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    deleteDocument: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Supprimé */
            204: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
            /** @description Inconnu */
            404: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    getAnalyticsSummary: {
        parameters: {
            query?: {
                months?: string;
            };
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Synthèse */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["AnalyticsSummary"];
                };
            };
        };
    };
    askAssistant: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": components["schemas"]["AssistantAsk"];
            };
        };
        responses: {
            /** @description Réponse sourcée ou refus */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["AssistantAnswer"];
                };
            };
            /** @description Service IA indisponible */
            503: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    suggestBilan: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": components["schemas"]["SuggestBilan"];
            };
        };
        responses: {
            /** @description Suggestions (codes existants seulement) */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["BilanSuggestions"];
                };
            };
            /** @description Service IA indisponible */
            503: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    reindexAssistant: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Bilan d’indexation */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["ReindexResult"];
                };
            };
            /** @description Service IA indisponible */
            503: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    transcribeAudio: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody: {
            content: {
                "multipart/form-data": {
                    /** Format: binary */
                    file: string;
                };
            };
        };
        responses: {
            /** @description Texte transcrit — à relire (D1) */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["TranscriptionResult"];
                };
            };
            /** @description Dictée non activée ou service IA indisponible */
            503: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    globalSearch: {
        parameters: {
            query: {
                q: string;
            };
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Résultats (5 max par famille) */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["SearchResponse"];
                };
            };
        };
    };
    listPartners: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Liste */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["PartnersResponse"];
                };
            };
        };
    };
    createPartner: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": components["schemas"]["PartnerCreate"];
            };
        };
        responses: {
            /** @description Créé */
            201: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["Partner"];
                };
            };
            /** @description Nom déjà utilisé */
            409: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    updatePartner: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                id: string;
            };
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": components["schemas"]["PartnerUpdate"];
            };
        };
        responses: {
            /** @description Mis à jour */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["Partner"];
                };
            };
            /** @description Inconnu */
            404: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    listParts: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Liste */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["PartsResponse"];
                };
            };
        };
    };
    createPart: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": components["schemas"]["PartCreate"];
            };
        };
        responses: {
            /** @description Créée */
            201: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["PartDetail"];
                };
            };
        };
    };
    getPart: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Fiche */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["PartDetail"];
                };
            };
            /** @description Inconnue */
            404: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    updatePart: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                id: string;
            };
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": components["schemas"]["PartUpdate"];
            };
        };
        responses: {
            /** @description Mise à jour */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["PartDetail"];
                };
            };
            /** @description Inconnue */
            404: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    addStockMovement: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                id: string;
            };
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": components["schemas"]["StockMovementCreate"];
            };
        };
        responses: {
            /** @description Mouvement tracé */
            201: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["PartDetail"];
                };
            };
            /** @description Le stock ne peut pas devenir négatif */
            409: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    listPurchaseOrders: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Liste */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["PurchaseOrdersResponse"];
                };
            };
        };
    };
    createPurchaseOrder: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": components["schemas"]["PurchaseOrderCreate"];
            };
        };
        responses: {
            /** @description Créé */
            201: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["PurchaseOrder"];
                };
            };
            /** @description Fournisseur ou pièce invalide */
            400: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    getPurchaseOrder: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Fiche */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["PurchaseOrder"];
                };
            };
            /** @description Inconnu */
            404: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    transitionPurchaseOrder: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                id: string;
            };
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": components["schemas"]["PurchaseOrderTransition"];
            };
        };
        responses: {
            /** @description État changé */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["PurchaseOrder"];
                };
            };
            /** @description Transition interdite */
            409: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    consumePart: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                id: string;
            };
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": components["schemas"]["ConsumePart"];
            };
        };
        responses: {
            /** @description Consommée */
            201: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["WorkOrderDetail"];
                };
            };
            /** @description Stock insuffisant ou prix inconnu */
            409: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    addLaborTime: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                id: string;
            };
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": components["schemas"]["LaborTimeCreate"];
            };
        };
        responses: {
            /** @description Saisie */
            201: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["WorkOrderDetail"];
                };
            };
            /** @description Taux horaire non défini pour cette personne */
            409: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    getPortalAsset: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                reference: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Appareil */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["PortalAsset"];
                };
            };
            /** @description Référence inconnue */
            404: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    createPortalRequest: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": components["schemas"]["PortalRequestCreate"];
            };
        };
        responses: {
            /** @description Signalement enregistré */
            201: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["PortalRequestCreated"];
                };
            };
            /** @description Référence inconnue */
            404: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
            /** @description Trop de signalements — réessayez dans une minute */
            429: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    getPortalRequestStatus: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                reference: string;
                token: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Avancement */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["PortalRequestStatus"];
                };
            };
            /** @description Signalement inconnu ou jeton invalide */
            404: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    listTaskTemplates: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Liste */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["TaskTemplatesResponse"];
                };
            };
        };
    };
    createTaskTemplate: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": components["schemas"]["TaskTemplateCreate"];
            };
        };
        responses: {
            /** @description Créé */
            201: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["TaskTemplate"];
                };
            };
            /** @description Libellé déjà utilisé */
            409: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    updateTaskTemplate: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                id: string;
            };
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": components["schemas"]["TaskTemplateUpdate"];
            };
        };
        responses: {
            /** @description Mis à jour */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["TaskTemplate"];
                };
            };
            /** @description Inconnu */
            404: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    generatePreventive: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": components["schemas"]["PreventiveGenerate"];
            };
        };
        responses: {
            /** @description Résumé de génération */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["PreventiveGenerationResult"];
                };
            };
        };
    };
    getPreventiveStatus: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description État */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["PreventiveStatus"];
                };
            };
        };
    };
    getAssetMeters: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Compteurs */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["MetersResponse"];
                };
            };
            /** @description Appareil inconnu */
            404: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    addMeterReading: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                id: string;
            };
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": components["schemas"]["MeterReadingCreate"];
            };
        };
        responses: {
            /** @description Relevé enregistré */
            201: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["MetersResponse"];
                };
            };
            /** @description Relevé inférieur ou égal au précédent */
            400: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    listWorkOrders: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Liste */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["WorkOrdersResponse"];
                };
            };
        };
    };
    createWorkOrder: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": components["schemas"]["WorkOrderCreate"];
            };
        };
        responses: {
            /** @description Créé */
            201: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["WorkOrderDetail"];
                };
            };
        };
    };
    getWorkOrder: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                id: string;
            };
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Fiche */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["WorkOrderDetail"];
                };
            };
            /** @description Inconnu (ou hors de son périmètre) */
            404: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    transitionWorkOrder: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                id: string;
            };
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": components["schemas"]["TransitionRequest"];
            };
        };
        responses: {
            /** @description État changé */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["WorkOrderDetail"];
                };
            };
            /** @description Transition interdite ou clôture bloquée (garde) */
            409: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    commentWorkOrder: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                id: string;
            };
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": components["schemas"]["CommentCreate"];
            };
        };
        responses: {
            /** @description Commentaire ajouté */
            201: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["WorkOrderDetail"];
                };
            };
        };
    };
    setWorkOrderAssignees: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                id: string;
            };
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": components["schemas"]["AssigneesUpdate"];
            };
        };
        responses: {
            /** @description Assignés */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["WorkOrderDetail"];
                };
            };
        };
    };
    upsertWorkOrderReport: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                id: string;
            };
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": components["schemas"]["ReportUpsert"];
            };
        };
        responses: {
            /** @description Bilan enregistré */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["WorkOrderDetail"];
                };
            };
            /** @description Valeur hors référentiel du champ */
            400: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    patchChecklistItem: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                id: string;
                itemId: string;
            };
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": components["schemas"]["ChecklistPatch"];
            };
        };
        responses: {
            /** @description Tâche réglée */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["ChecklistItem"];
                };
            };
            /** @description Tâche inconnue */
            404: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    listRequests: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Liste */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["RequestsResponse"];
                };
            };
        };
    };
    createRequest: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": components["schemas"]["RequestCreate"];
            };
        };
        responses: {
            /** @description Demande créée */
            201: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["RequestSummary"];
                };
            };
        };
    };
    approveRequest: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                id: string;
            };
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": components["schemas"]["RequestApprove"];
            };
        };
        responses: {
            /** @description OT créé et lié */
            201: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["WorkOrderDetail"];
                };
            };
            /** @description Demande déjà traitée */
            409: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    rejectRequest: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                id: string;
            };
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": components["schemas"]["RequestReject"];
            };
        };
        responses: {
            /** @description Rejetée */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["RequestSummary"];
                };
            };
            /** @description Demande déjà traitée */
            409: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    listReferenceValues: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description Liste */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["ReferenceValuesResponse"];
                };
            };
        };
    };
    createReferenceValue: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": components["schemas"]["ReferenceValueCreate"];
            };
        };
        responses: {
            /** @description Créée */
            201: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["ReferenceValue"];
                };
            };
            /** @description Libellé déjà présent pour ce champ */
            409: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    updateReferenceValue: {
        parameters: {
            query?: never;
            header?: never;
            path: {
                id: string;
            };
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": components["schemas"]["ReferenceValueUpdate"];
            };
        };
        responses: {
            /** @description Mise à jour */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["ReferenceValue"];
                };
            };
            /** @description Inconnue */
            404: {
                headers: {
                    [name: string]: unknown;
                };
                content?: never;
            };
        };
    };
    getHealth: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description État agrégé */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["HealthResponse"];
                };
            };
        };
    };
}
