import { components as FetchStyleComponents } from 'topvisor-openapi/src/ts/Selector/Types/FetchStyle';
import { components as FieldDirectionComponents } from 'topvisor-openapi/src/ts/FieldDirection';
import { components as FieldFilterComponents } from 'topvisor-openapi/src/ts/FieldFilter';
import { components as FieldOperatorComponents } from 'topvisor-openapi/src/ts/FieldOperator';
import { components as FieldOrderComponents } from 'topvisor-openapi/src/ts/FieldOrder';
import { components as ResponseErrorComponents } from 'topvisor-openapi/src/ts/ResponseError';
import { components as ResponseSuccessComponents } from 'topvisor-openapi/src/ts/ResponseSuccess';
import { components as PaginationComponents } from 'topvisor-openapi/src/ts/Pagination';
declare global {
    namespace Api {
        /**
         * Схемы расширения спецификации OpenAPI для работы с селектором
         *
         * Эти схемы реализуются с помощью Api клиента и дженериков
         *
         * В данном namespace определяются только базовые схемы без дженериков
         */
        namespace Ext {
            /**
             * Использовать расширение спецификации OpenAPI с селектором
             */
            type UseExt = boolean;
            /**
             * Базовые структуры расширения селектора для API без дженериков
             */
            type Schemas = {
                /**
                 * Операция метода API
                 *
                 * Определяет возможные операции метода API
                 */
                Oper: 'get' | 'edit' | 'add' | 'del';
            } & {
                /**
                 * Базовый тип для всех моделей
                 */
                Model: Record<string, any>;
            } & {
                /**
                 * Базовый тип списка полей
                 *
                 * @todo Реализовать тип объектов
                 */
                Fields: readonly string[];
            } & {
                FetchStyle: Extract<FetchStyleComponents['schemas']['Selector.Types.FetchStyle'], keyof Api.ResultByModelFetchStyle<any, any>>;
            } & FieldDirectionComponents['schemas'] & FieldFilterComponents['schemas'] & FieldOperatorComponents['schemas'] & FieldOrderComponents['schemas'] & ResponseErrorComponents['schemas'] & ResponseSuccessComponents['schemas'] & PaginationComponents['schemas'];
        }
    }
}
export {};
