$OpenApiTs: {
    /api/analytics/ctr: {
        put: {
            req: SendCtrDataData;
            res: {
                204: void;
                400: ErrorResponseBody;
            };
        };
    };
    /api/analytics/events: {
        put: {
            req: SendEventDataData;
            res: {
                204: void;
                400: ErrorResponseBody;
            };
        };
    };
    /api/analytics/events/all: {
        post: {
            req: GetAllEventsData;
            res: {
                200: GetEventsResponseBody;
                400: ErrorResponseBody;
            };
        };
    };
    /api/analytics/events/ctr: {
        post: {
            req: GetCtrAnalyticsData;
            res: {
                200: CTRAnalyticsResponse;
                400: ErrorResponseBody;
            };
        };
    };
    /api/analytics/events/{event_id}: {
        get: {
            req: GetEventByIdData;
            res: {
                200: EventData;
                400: ErrorResponseBody;
            };
        };
    };
    /api/analytics/rag: {
        post: {
            req: GetRagAnalyticsData;
            res: {
                200: RAGAnalyticsResponse;
                400: ErrorResponseBody;
            };
        };
        put: {
            req: SetRagQueryRatingData;
            res: {
                204: void;
                400: ErrorResponseBody;
            };
        };
    };
    /api/analytics/recommendations: {
        post: {
            req: GetRecommendationAnalyticsData;
            res: {
                200: RecommendationAnalyticsResponse;
                400: ErrorResponseBody;
            };
        };
    };
    /api/analytics/search: {
        post: {
            req: GetSearchAnalyticsData;
            res: {
                200: SearchAnalyticsResponse;
                400: ErrorResponseBody;
            };
        };
        put: {
            req: SetSearchQueryRatingData;
            res: {
                204: void;
                400: ErrorResponseBody;
            };
        };
    };
    /api/analytics/search/cluster: {
        post: {
            req: GetClusterAnalyticsData;
            res: {
                200: ClusterAnalyticsResponse;
                400: ErrorResponseBody;
            };
        };
    };
    /api/analytics/top: {
        post: {
            req: GetTopDatasetsData;
            res: {
                200: TopDatasetsResponse[];
                400: ErrorResponseBody;
            };
        };
    };
    /api/auth: {
        delete: {
            res: {
                204: void;
            };
        };
        get: {
            req: LoginData;
            res: {
                303: unknown;
                400: ErrorResponseBody;
            };
        };
    };
    /api/auth/callback: {
        get: {
            res: {
                200: SlimUser;
                400: ErrorResponseBody;
            };
        };
    };
    /api/auth/me: {
        get: {
            res: {
                200: SlimUser;
                400: ErrorResponseBody;
            };
        };
    };
    /api/chunk: {
        post: {
            req: CreateChunkData;
            res: {
                200: ReturnQueuedChunk;
                400: ErrorResponseBody;
                413: ErrorResponseBody;
                426: ErrorResponseBody;
            };
        };
        put: {
            req: UpdateChunkData;
            res: {
                204: void;
                400: ErrorResponseBody;
            };
        };
    };
    /api/chunk/autocomplete: {
        post: {
            req: AutocompleteData;
            res: {
                200: SearchResponseTypes;
                400: ErrorResponseBody;
            };
        };
    };
    /api/chunk/count: {
        post: {
            req: CountChunksData;
            res: {
                200: CountChunkQueryResponseBody;
                404: ErrorResponseBody;
            };
        };
    };
    /api/chunk/generate: {
        post: {
            req: GenerateOffChunksData;
            res: {
                200: string;
                400: ErrorResponseBody;
            };
        };
    };
    /api/chunk/recommend: {
        post: {
            req: GetRecommendedChunksData;
            res: {
                200: RecommendResponseTypes;
                400: ErrorResponseBody;
            };
        };
    };
    /api/chunk/search: {
        post: {
            req: SearchChunksData;
            res: {
                200: SearchResponseTypes;
                400: ErrorResponseBody;
            };
        };
    };
    /api/chunk/suggestions: {
        post: {
            req: GetSuggestedQueriesData;
            res: {
                200: SuggestedQueriesResponse;
                400: ErrorResponseBody;
            };
        };
    };
    /api/chunk/tracking_id/update: {
        put: {
            req: UpdateChunkByTrackingIdData2;
            res: {
                204: void;
                400: ErrorResponseBody;
            };
        };
    };
    /api/chunk/tracking_id/{tracking_id}: {
        delete: {
            req: DeleteChunkByTrackingIdData;
            res: {
                204: void;
                400: ErrorResponseBody;
            };
        };
        get: {
            req: GetChunkByTrackingIdData;
            res: {
                200: ChunkReturnTypes;
                400: ErrorResponseBody;
                404: ErrorResponseBody;
            };
        };
    };
    /api/chunk/{chunk_id}: {
        delete: {
            req: DeleteChunkData;
            res: {
                204: void;
                400: ErrorResponseBody;
            };
        };
        get: {
            req: GetChunkByIdData;
            res: {
                200: ChunkReturnTypes;
                400: ErrorResponseBody;
                404: ErrorResponseBody;
            };
        };
    };
    /api/chunk_group: {
        post: {
            req: CreateChunkGroupData;
            res: {
                200: CreateChunkGroupResponseEnum;
                400: ErrorResponseBody;
                413: ErrorResponseBody;
            };
        };
        put: {
            req: UpdateChunkGroupData;
            res: {
                204: void;
                400: ErrorResponseBody;
            };
        };
    };
    /api/chunk_group/chunk/{group_id}: {
        delete: {
            req: RemoveChunkFromGroupData;
            res: {
                204: void;
                400: ErrorResponseBody;
            };
        };
        post: {
            req: AddChunkToGroupData;
            res: {
                204: void;
                400: ErrorResponseBody;
            };
        };
    };
    /api/chunk_group/chunks: {
        post: {
            req: GetGroupsForChunksData;
            res: {
                200: GroupsForChunk[];
                400: ErrorResponseBody;
            };
        };
    };
    /api/chunk_group/group_oriented_search: {
        post: {
            req: SearchOverGroupsData;
            res: {
                200: SearchOverGroupsResponseTypes;
                400: ErrorResponseBody;
            };
        };
    };
    /api/chunk_group/recommend: {
        post: {
            req: GetRecommendedGroupsData;
            res: {
                200: RecommendGroupsResponse;
                400: ErrorResponseBody;
            };
        };
    };
    /api/chunk_group/search: {
        post: {
            req: SearchWithinGroupData;
            res: {
                200: SearchGroupResponseTypes;
                400: ErrorResponseBody;
            };
        };
    };
    /api/chunk_group/tracking_id/{group_tracking_id}/{page}: {
        get: {
            req: GetChunksInGroupByTrackingIdData;
            res: {
                200: GetChunksInGroupResponse;
                400: ErrorResponseBody;
                404: ErrorResponseBody;
            };
        };
    };
    /api/chunk_group/tracking_id/{tracking_id}: {
        delete: {
            req: DeleteGroupByTrackingIdData;
            res: {
                204: void;
                400: ErrorResponseBody;
            };
        };
        get: {
            req: GetGroupByTrackingIdData;
            res: {
                200: ChunkGroupAndFileId;
                400: ErrorResponseBody;
                404: ErrorResponseBody;
            };
        };
        post: {
            req: AddChunkToGroupByTrackingIdData;
            res: {
                204: void;
                400: ErrorResponseBody;
            };
        };
        put: {
            req: UpdateGroupByTrackingIdData;
            res: {
                204: void;
                400: ErrorResponseBody;
            };
        };
    };
    /api/chunk_group/{group_id}: {
        delete: {
            req: DeleteChunkGroupData;
            res: {
                204: void;
                400: ErrorResponseBody;
            };
        };
        get: {
            req: GetChunkGroupData;
            res: {
                200: ChunkGroupAndFileId;
                400: ErrorResponseBody;
                404: ErrorResponseBody;
            };
        };
    };
    /api/chunk_group/{group_id}/{page}: {
        get: {
            req: GetChunksInGroupData;
            res: {
                200: GetChunksInGroupResponse;
                400: ErrorResponseBody;
                404: ErrorResponseBody;
            };
        };
    };
    /api/chunks: {
        post: {
            req: GetChunksByIdsData;
            res: {
                200: ChunkReturnTypes[];
                400: ErrorResponseBody;
                404: ErrorResponseBody;
            };
        };
    };
    /api/chunks/scroll: {
        post: {
            req: ScrollDatasetChunksData;
            res: {
                200: ScrollChunksResponseBody;
                400: ErrorResponseBody;
            };
        };
    };
    /api/chunks/tracking: {
        post: {
            req: GetChunksByTrackingIdsData;
            res: {
                200: ChunkReturnTypes[];
                400: ErrorResponseBody;
            };
        };
    };
    /api/dataset: {
        post: {
            req: CreateDatasetData;
            res: {
                200: Dataset;
                400: ErrorResponseBody;
            };
        };
        put: {
            req: UpdateDatasetData;
            res: {
                200: Dataset;
                400: ErrorResponseBody;
                404: ErrorResponseBody;
            };
        };
    };
    /api/dataset/clear/{dataset_id}: {
        put: {
            req: ClearDatasetData;
            res: {
                204: void;
                400: ErrorResponseBody;
                404: ErrorResponseBody;
            };
        };
    };
    /api/dataset/crawl_options/{dataset_id}: {
        get: {
            req: GetDatasetCrawlOptionsData;
            res: {
                200: GetCrawlOptionsResponse;
                400: ErrorResponseBody;
                404: ErrorResponseBody;
            };
        };
    };
    /api/dataset/events: {
        post: {
            req: GetEventsData2;
            res: {
                200: EventReturn;
                400: ErrorResponseBody;
            };
        };
    };
    /api/dataset/files/{dataset_id}/{page}: {
        get: {
            req: GetDatasetFilesHandlerData;
            res: {
                200: File[];
                400: ErrorResponseBody;
            };
        };
    };
    /api/dataset/get_all_tags: {
        post: {
            req: GetAllTagsData;
            res: {
                200: GetAllTagsResponse;
                400: ErrorResponseBody;
            };
        };
    };
    /api/dataset/groups/{dataset_id}/{page}: {
        get: {
            req: GetGroupsForDatasetData;
            res: {
                200: GroupData;
                400: ErrorResponseBody;
            };
        };
    };
    /api/dataset/organization/{organization_id}: {
        get: {
            req: GetDatasetsFromOrganizationData;
            res: {
                200: DatasetAndUsage[];
                400: ErrorResponseBody;
                404: ErrorResponseBody;
            };
        };
    };
    /api/dataset/tracking_id/{tracking_id}: {
        delete: {
            req: DeleteDatasetByTrackingIdData;
            res: {
                204: void;
                400: ErrorResponseBody;
                404: ErrorResponseBody;
            };
        };
        get: {
            req: GetDatasetByTrackingIdData;
            res: {
                200: Dataset;
                400: ErrorResponseBody;
                404: ErrorResponseBody;
            };
        };
    };
    /api/dataset/usage/{dataset_id}: {
        get: {
            req: GetUsageByDatasetIdData;
            res: {
                200: DatasetUsageCount;
                400: ErrorResponseBody;
                404: ErrorResponseBody;
            };
        };
    };
    /api/dataset/{dataset_id}: {
        delete: {
            req: DeleteDatasetData;
            res: {
                204: void;
                400: ErrorResponseBody;
                404: ErrorResponseBody;
            };
        };
        get: {
            req: GetDatasetData;
            res: {
                200: Dataset;
                400: ErrorResponseBody;
                404: ErrorResponseBody;
            };
        };
    };
    /api/file: {
        post: {
            req: UploadFileHandlerData;
            res: {
                200: UploadFileResult;
                400: ErrorResponseBody;
            };
        };
    };
    /api/file/{file_id}: {
        delete: {
            req: DeleteFileHandlerData;
            res: {
                204: void;
                400: ErrorResponseBody;
            };
        };
        get: {
            req: GetFileHandlerData;
            res: {
                200: FileDTO;
                400: ErrorResponseBody;
                404: ErrorResponseBody;
            };
        };
    };
    /api/health: {
        get: {
            res: {
                200: unknown;
                400: ErrorResponseBody;
            };
        };
    };
    /api/invitation: {
        post: {
            req: PostInvitationData;
            res: {
                204: void;
                400: ErrorResponseBody;
            };
        };
    };
    /api/invitation/{invitation_id}: {
        delete: {
            req: DeleteInvitationData;
            res: {
                204: void;
                400: ErrorResponseBody;
            };
        };
    };
    /api/invitations/{organization_id}: {
        get: {
            req: GetInvitationsData;
            res: {
                200: Invitation[];
                400: ErrorResponseBody;
            };
        };
    };
    /api/message: {
        delete: {
            req: RegenerateMessageData;
            res: {
                200: string;
                400: ErrorResponseBody;
            };
        };
        patch: {
            req: RegenerateMessagePatchData;
            res: {
                200: string;
                400: ErrorResponseBody;
            };
        };
        post: {
            req: CreateMessageData;
            res: {
                200: string;
                400: ErrorResponseBody;
            };
        };
        put: {
            req: EditMessageData;
            res: {
                200: string;
                400: ErrorResponseBody;
            };
        };
    };
    /api/messages/{messages_topic_id}: {
        get: {
            req: GetAllTopicMessagesData;
            res: {
                200: Message[];
                400: ErrorResponseBody;
            };
        };
    };
    /api/organization: {
        post: {
            req: CreateOrganizationData;
            res: {
                200: Organization;
                400: ErrorResponseBody;
            };
        };
        put: {
            req: UpdateOrganizationData;
            res: {
                200: Organization;
                400: ErrorResponseBody;
            };
        };
    };
    /api/organization/update_dataset_configs: {
        post: {
            req: UpdateAllOrgDatasetConfigsData;
            res: {
                204: void;
                400: ErrorResponseBody;
            };
        };
    };
    /api/organization/usage/{organization_id}: {
        get: {
            req: GetOrganizationUsageData;
            res: {
                200: OrganizationUsageCount;
                400: ErrorResponseBody;
            };
        };
    };
    /api/organization/users/{organization_id}: {
        get: {
            req: GetOrganizationUsersData;
            res: {
                200: SlimUser[];
                400: ErrorResponseBody;
            };
        };
    };
    /api/organization/{organization_id}: {
        delete: {
            req: DeleteOrganizationData;
            res: {
                204: void;
                400: ErrorResponseBody;
            };
        };
        get: {
            req: GetOrganizationData;
            res: {
                200: OrganizationWithSubAndPlan;
                400: ErrorResponseBody;
                404: ErrorResponseBody;
            };
        };
    };
    /api/stripe/checkout/setup/{organization_id}: {
        post: {
            req: CreateSetupCheckoutSessionData;
            res: {
                200: CreateSetupCheckoutSessionResPayload;
                400: ErrorResponseBody;
            };
        };
    };
    /api/stripe/invoices/{organization_id}: {
        get: {
            req: GetAllInvoicesData;
            res: {
                200: StripeInvoice[];
                400: ErrorResponseBody;
            };
        };
    };
    /api/stripe/payment_link/{plan_id}/{organization_id}: {
        get: {
            req: DirectToPaymentLinkData;
            res: {
                303: unknown;
                400: ErrorResponseBody;
            };
        };
    };
    /api/stripe/plans: {
        get: {
            res: {
                200: StripePlan[];
                400: ErrorResponseBody;
            };
        };
    };
    /api/stripe/subscription/{subscription_id}: {
        delete: {
            req: CancelSubscriptionData;
            res: {
                200: unknown;
                400: ErrorResponseBody;
            };
        };
    };
    /api/stripe/subscription_plan/{subscription_id}/{plan_id}: {
        patch: {
            req: UpdateSubscriptionPlanData;
            res: {
                200: unknown;
                400: ErrorResponseBody;
            };
        };
    };
    /api/topic: {
        post: {
            req: CreateTopicData;
            res: {
                200: Topic;
                400: ErrorResponseBody;
            };
        };
        put: {
            req: UpdateTopicData;
            res: {
                204: void;
                400: ErrorResponseBody;
            };
        };
    };
    /api/topic/clone: {
        post: {
            req: CloneTopicData;
            res: {
                200: Topic;
                400: ErrorResponseBody;
            };
        };
    };
    /api/topic/owner/{owner_id}: {
        get: {
            req: GetAllTopicsForOwnerIdData;
            res: {
                200: Topic[];
                400: ErrorResponseBody;
            };
        };
    };
    /api/topic/{topic_id}: {
        delete: {
            req: DeleteTopicData2;
            res: {
                204: void;
                400: ErrorResponseBody;
            };
        };
    };
    /api/user: {
        put: {
            req: UpdateUserData;
            res: {
                204: void;
                400: ErrorResponseBody;
            };
        };
    };
    /api/user/api_key: {
        post: {
            req: SetUserApiKeyData;
            res: {
                200: SetUserApiKeyResponse;
                400: ErrorResponseBody;
            };
        };
    };
    /api/user/api_key/{api_key_id}: {
        delete: {
            req: DeleteUserApiKeyData;
            res: {
                204: void;
                400: ErrorResponseBody;
            };
        };
    };
    /metrics: {
        post: {
            res: {
                200: string;
                500: ErrorResponseBody;
            };
        };
    };
}

Type declaration