import { Props } from '../../formsExt/selector2/types';
import { paths } from 'topvisor-openapi/src/ts/Topvisor';
import { components } from 'topvisor-openapi/src/ts/TV/API/Params/FieldsTrait';
import { components } from 'topvisor-openapi/src/ts/TV/API/Params/OrdersTrait';
import { components } from 'topvisor-openapi/src/ts/TV/API/Params/FiltersTrait';
import { components } from 'topvisor-openapi/src/ts/TV/API/Params/LimitTrait';
import { components } from 'topvisor-openapi/src/ts/TV/API/Params/OffsetTrait';
import { components } from 'topvisor-openapi/src/ts/TV/API/Types/UrlShort';
/**
 * Сгенерировать ссылку на проект
 */
export declare const genProjectLink: (projectId: number) => string;
/**
 * Сгенерировать ссылку на сайт проекта
 */
export declare const genProjectExternalLink: (url: string) => string;
/**
 * Расширяет функционал аналогичной функции в Selector2
 *
 * Добавить фильтр поиска по полям `id`, `name`, `url` в параметры API.
 * Поиск выполняется по строке `search` и по строке с инвертированной раскладкой клавиатуры.
 *
 * @param api - api, которое используется в `TopProjectSelector`
 * @param search - введенная строка поиска
 *
 * @todo Объединить с apiSetSearchParamsFilter() из @/components/formsExt/selector2/utils.ts
 */
export declare const apiSetSearchParamsFilter: (api: NonNullable<Props["api"]>, search: string) => void;
/**
 * Создать API запрос на получение списка проектов
 *
 * Данные после загрузки преобразуются с помощью `prepareProjects()`
 *
 * @see prepareProjects
 */
export declare const genApiGetProjects: (client: Api.Client<Api.TV.Paths, true>, userId: number, params?: Record<string, number>) => Api.ClientRequest<Api.ClientRequestContext< paths, "/get/projects_2/projects/", true>, ("name" | "id" | "on" | "right" | "url" | "user_id")[], Api.Params<Api.ClientRequestContext< paths, "/get/projects_2/projects/", true>, undefined, {
    "COUNT(*)"?: any;
    "IS_YOUTUBE()"?: any;
    "IS_APP_STORE()"?: any;
    "IS_GOOGLE_PLAY()"?: any;
    "GEN_SEARCH_STRING()"?: any;
    id?: any;
    user_id?: any;
    name?: string | null;
    url?: any;
    date?: any;
    last_view?: any;
    folder_id?: number | null;
    folder_name?: any;
    task_time_delete?: any;
    task_method_name?: any;
    task_method_params_json?: any;
    task_status?: any;
    task_progress?: any;
    site?: any;
    update?: any;
    status_positions?: string | null;
    positions_time?: any;
    positions_date?: any;
    positions_percent?: any;
    status_positions_time?: any;
    status_positions_date?: any;
    status_positions_percent?: any;
    status_positions_by_keywords?: any;
    status_volumes?: any;
    status_claster?: any;
    status_audit?: any;
    status_audit_time?: any;
    status_audit_percent?: any;
    status_watcher?: any;
    status_watcher_percent?: any;
    status_indexing?: any;
    status_indexing_percent?: any;
    status_sitemap?: any;
    status_sitemap_percent?: any;
    status_urlsUpdater?: any;
    status_ai_tracker?: any;
    status_ai_tracker_time?: any;
    status_ai_tracker_date?: any;
    status_ai_tracker_percent?: any;
    on?: any;
    subdomains?: any;
    filter?: any;
    auto_correct?: any;
    with_snippets?: any;
    do_snapshots?: any;
    do_snapshots_with_snippets?: any;
    report_last_time?: any;
    common_traffic?: any;
    guest_link_right?: any;
    is_task?: any;
    count_keywords?: any;
    right?: any;
    ord?: any;
    favorite?: any;
    tags?: any;
    user_email?: any;
    user_currency?: any;
    broker_count_campaigns?: any;
    broker_count_banners?: any;
    broker_count_banners_off?: any;
    domain_expire?: any;
    ssl_expire?: any;
    competitor?: any;
    competitor_ord?: any;
    pos_summary_up?: any;
    pos_summary_stay?: any;
    pos_summary_down?: any;
    pos_summary_avg?: any;
    pos_summary_visibility?: any;
    audit_server_location?: any;
    audit_auto_collect_pages?: number | null;
    audit_auto_collect_pages_limit?: number | null;
    indexing_searchers_keys?: unknown[] | null;
    watcher_types?: unknown[] | null;
    ai_tracker_brand_name?: any;
    ai_tracker_aliases?: unknown[] | null;
    ai_tracker_models?: unknown[] | null;
    ai_tracker_context_lang?: any;
    ai_tracker_context_location?: any;
}, {
    show_owner_balance?: boolean | null;
    show_site_stat?: boolean | null;
    show_searchers_and_regions?: number;
    include_positions_summary?: boolean | null;
    include_positions_summary_params?: unknown[] | null;
    is_task?: boolean | null;
    fields?: components["schemas"]["TV.API.Params.FieldsTrait"]["fields"];
    orders?: components["schemas"]["TV.API.Params.OrdersTrait"]["orders"];
    filters?: components["schemas"]["TV.API.Params.FiltersTrait"]["filters"];
    id?: components["schemas"]["TV.API.Params.FiltersTrait"]["id"];
    limit?: components["schemas"]["TV.API.Params.LimitTrait"]["limit"];
    offset?: components["schemas"]["TV.API.Params.OffsetTrait"]["offset"];
}>, Api.ModelFields<{
    "COUNT(*)"?: any;
    "IS_YOUTUBE()"?: any;
    "IS_APP_STORE()"?: any;
    "IS_GOOGLE_PLAY()"?: any;
    "GEN_SEARCH_STRING()"?: any;
    id?: any;
    user_id?: any;
    name?: string | null;
    url?: any;
    date?: any;
    last_view?: any;
    folder_id?: number | null;
    folder_name?: any;
    task_time_delete?: any;
    task_method_name?: any;
    task_method_params_json?: any;
    task_status?: any;
    task_progress?: any;
    site?: any;
    update?: any;
    status_positions?: string | null;
    positions_time?: any;
    positions_date?: any;
    positions_percent?: any;
    status_positions_time?: any;
    status_positions_date?: any;
    status_positions_percent?: any;
    status_positions_by_keywords?: any;
    status_volumes?: any;
    status_claster?: any;
    status_audit?: any;
    status_audit_time?: any;
    status_audit_percent?: any;
    status_watcher?: any;
    status_watcher_percent?: any;
    status_indexing?: any;
    status_indexing_percent?: any;
    status_sitemap?: any;
    status_sitemap_percent?: any;
    status_urlsUpdater?: any;
    status_ai_tracker?: any;
    status_ai_tracker_time?: any;
    status_ai_tracker_date?: any;
    status_ai_tracker_percent?: any;
    on?: any;
    subdomains?: any;
    filter?: any;
    auto_correct?: any;
    with_snippets?: any;
    do_snapshots?: any;
    do_snapshots_with_snippets?: any;
    report_last_time?: any;
    common_traffic?: any;
    guest_link_right?: any;
    is_task?: any;
    count_keywords?: any;
    right?: any;
    ord?: any;
    favorite?: any;
    tags?: any;
    user_email?: any;
    user_currency?: any;
    broker_count_campaigns?: any;
    broker_count_banners?: any;
    broker_count_banners_off?: any;
    domain_expire?: any;
    ssl_expire?: any;
    competitor?: any;
    competitor_ord?: any;
    pos_summary_up?: any;
    pos_summary_stay?: any;
    pos_summary_down?: any;
    pos_summary_avg?: any;
    pos_summary_visibility?: any;
    audit_server_location?: any;
    audit_auto_collect_pages?: number | null;
    audit_auto_collect_pages_limit?: number | null;
    indexing_searchers_keys?: unknown[] | null;
    watcher_types?: unknown[] | null;
    ai_tracker_brand_name?: any;
    ai_tracker_aliases?: unknown[] | null;
    ai_tracker_models?: unknown[] | null;
    ai_tracker_context_lang?: any;
    ai_tracker_context_location?: any;
}> | undefined>;
/**
 * Создать API запрос для добавления проекта
 */
export declare const genApiAddProject: (client: Api.Client<Api.TV.Paths, true>) => Api.ClientRequest<Api.ClientRequestContext< paths, "/add/projects_2/projects/", true>, never, Omit<{
    url: components["schemas"]["TV.API.Types.UrlShort"];
    name?: string | null;
    tags?: unknown[] | null;
    folder_id?: number | null;
    on?: number | null;
    is_task?: boolean | null;
}, "fields" | "filters" | "orders" | "fetch_style">, never>;
