// AUTO-GENERATED by mizan - do not edit manually
// Regenerate with: npm run schemas

// ============================================================================
// OpenAPI Types (generated by openapi-typescript)
// ============================================================================

export interface paths {
    "/channels/chat/params": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        /** Chat channel params */
        post: operations["chatParams"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/channels/chat/react": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        /** Chat React→Django message */
        post: operations["chatReactMessage"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/channels/chat/django": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        /** Chat Django→React message */
        post: operations["chatDjangoMessage"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/channels/notifications/django": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        /** Notifications Django→React message */
        post: operations["notificationsDjangoMessage"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/channels/presence/django": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        /** Presence Django→React message */
        post: operations["presenceDjangoMessage"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
    "/channels/private/django": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        get?: never;
        put?: never;
        /** Private Django→React message */
        post: operations["privateDjangoMessage"];
        delete?: never;
        options?: never;
        head?: never;
        patch?: never;
        trace?: never;
    };
}
export type webhooks = Record<string, never>;
export interface components {
    schemas: {
        /** BaseModel */
        BaseModel: Record<string, never>;
        /** ChatParams */
        ChatParams: {
            /** Room */
            room: string;
        };
        /** ChatReactMessage */
        ChatReactMessage: {
            /** Text */
            text: string;
        };
        /** ChatDjangoMessage */
        ChatDjangoMessage: {
            /** Text */
            text: string;
        };
        /** NotificationsDjangoMessage */
        NotificationsDjangoMessage: {
            /** Text */
            text: string;
        };
        /** PresenceDjangoMessage */
        PresenceDjangoMessage: {
            /** Value */
            value: number;
        };
        /** PrivateDjangoMessage */
        PrivateDjangoMessage: {
            /** Text */
            text: string;
        };
    };
    responses: never;
    parameters: never;
    requestBodies: never;
    headers: never;
    pathItems: never;
}
export type $defs = Record<string, never>;
export interface operations {
    chatParams: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": components["schemas"]["ChatParams"];
            };
        };
        responses: {
            /** @description OK */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["BaseModel"];
                };
            };
        };
    };
    chatReactMessage: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": components["schemas"]["ChatReactMessage"];
            };
        };
        responses: {
            /** @description OK */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["BaseModel"];
                };
            };
        };
    };
    chatDjangoMessage: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description OK */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["ChatDjangoMessage"];
                };
            };
        };
    };
    notificationsDjangoMessage: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description OK */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["NotificationsDjangoMessage"];
                };
            };
        };
    };
    presenceDjangoMessage: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description OK */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["PresenceDjangoMessage"];
                };
            };
        };
    };
    privateDjangoMessage: {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody?: never;
        responses: {
            /** @description OK */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": components["schemas"]["PrivateDjangoMessage"];
                };
            };
        };
    };
}


// ============================================================================
// Convenience Type Exports
// ============================================================================

export type ChatParams = components["schemas"]["ChatParams"]
export type ChatReactMessage = components["schemas"]["ChatReactMessage"]
export type ChatDjangoMessage = components["schemas"]["ChatDjangoMessage"]
export type NotificationsDjangoMessage = components["schemas"]["NotificationsDjangoMessage"]
export type PresenceDjangoMessage = components["schemas"]["PresenceDjangoMessage"]
export type PrivateDjangoMessage = components["schemas"]["PrivateDjangoMessage"]

// ============================================================================
// Channel Registry
// ============================================================================

export const CHANNELS = {
  chat: {
    name: 'chat',
    pascalName: 'Chat',
    hasParams: true,
    hasReactMessage: true,
    hasDjangoMessage: true,
    paramsType: 'ChatParams',
    reactMessageType: 'ChatReactMessage',
    djangoMessageType: 'ChatDjangoMessage',
  },
  notifications: {
    name: 'notifications',
    pascalName: 'Notifications',
    hasParams: false,
    hasReactMessage: false,
    hasDjangoMessage: true,
    djangoMessageType: 'NotificationsDjangoMessage',
  },
  presence: {
    name: 'presence',
    pascalName: 'Presence',
    hasParams: false,
    hasReactMessage: false,
    hasDjangoMessage: true,
    djangoMessageType: 'PresenceDjangoMessage',
  },
  private: {
    name: 'private',
    pascalName: 'Private',
    hasParams: false,
    hasReactMessage: false,
    hasDjangoMessage: true,
    djangoMessageType: 'PrivateDjangoMessage',
  },
} as const
