import _m0 from 'protobufjs/minimal';
export declare const protobufPackage = "yandex.cloud.searchapi.v2";
export interface SearchQuery {
    /** Search type that determines the domain name that will be used for the search queries. */
    searchType: SearchQuery_SearchType;
    /** Search query text */
    queryText: string;
    /** Rule for filtering search results and determines whether any documents should be excluded. */
    familyMode: SearchQuery_FamilyMode;
    /** The number of a requested page with search results */
    page: number;
    /** Typos autocorrections mode */
    fixTypoMode: SearchQuery_FixTypoMode;
}
export declare enum SearchQuery_SearchType {
    SEARCH_TYPE_UNSPECIFIED = 0,
    /** SEARCH_TYPE_RU - Russian search type (default), yandex.ru search domain name will be used. */
    SEARCH_TYPE_RU = 1,
    /** SEARCH_TYPE_TR - Turkish search type, yandex.tr search domain name will be used. */
    SEARCH_TYPE_TR = 2,
    /** SEARCH_TYPE_COM - International search type, yandex.com search domain name will be used. */
    SEARCH_TYPE_COM = 3,
    /** SEARCH_TYPE_KK - Kazakh search type, yandex.kz search domain name will be used. */
    SEARCH_TYPE_KK = 4,
    /** SEARCH_TYPE_BE - Belarusian search type, yandex.by search domain name will be used. */
    SEARCH_TYPE_BE = 5,
    UNRECOGNIZED = -1
}
export declare function searchQuery_SearchTypeFromJSON(object: any): SearchQuery_SearchType;
export declare function searchQuery_SearchTypeToJSON(object: SearchQuery_SearchType): string;
export declare enum SearchQuery_FamilyMode {
    FAMILY_MODE_UNSPECIFIED = 0,
    /** FAMILY_MODE_NONE - Filtering is disabled. Search results include any documents regardless of their contents. */
    FAMILY_MODE_NONE = 1,
    /**
     * FAMILY_MODE_MODERATE - Moderate filter (default value). Documents of the Adult category are excluded from search results
     * unless a query is explicitly made for searching resources of this category.
     */
    FAMILY_MODE_MODERATE = 2,
    /**
     * FAMILY_MODE_STRICT - Regardless of a search query, documents of the Adult category
     * and those with profanity are excluded from search results.
     */
    FAMILY_MODE_STRICT = 3,
    UNRECOGNIZED = -1
}
export declare function searchQuery_FamilyModeFromJSON(object: any): SearchQuery_FamilyMode;
export declare function searchQuery_FamilyModeToJSON(object: SearchQuery_FamilyMode): string;
export declare enum SearchQuery_FixTypoMode {
    FIX_TYPO_MODE_UNSPECIFIED = 0,
    /** FIX_TYPO_MODE_ON - Automatically correct typos (default value). */
    FIX_TYPO_MODE_ON = 1,
    /** FIX_TYPO_MODE_OFF - Autocorrection is off. */
    FIX_TYPO_MODE_OFF = 2,
    UNRECOGNIZED = -1
}
export declare function searchQuery_FixTypoModeFromJSON(object: any): SearchQuery_FixTypoMode;
export declare function searchQuery_FixTypoModeToJSON(object: SearchQuery_FixTypoMode): string;
export declare const SearchQuery: {
    encode(message: SearchQuery, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): SearchQuery;
    fromJSON(object: any): SearchQuery;
    toJSON(message: SearchQuery): unknown;
    fromPartial<I extends {
        searchType?: SearchQuery_SearchType | undefined;
        queryText?: string | undefined;
        familyMode?: SearchQuery_FamilyMode | undefined;
        page?: number | undefined;
        fixTypoMode?: SearchQuery_FixTypoMode | undefined;
    } & {
        searchType?: SearchQuery_SearchType | undefined;
        queryText?: string | undefined;
        familyMode?: SearchQuery_FamilyMode | undefined;
        page?: number | undefined;
        fixTypoMode?: SearchQuery_FixTypoMode | undefined;
    } & Record<Exclude<keyof I, keyof SearchQuery>, never>>(object: I): SearchQuery;
};
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
export type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
    [K in keyof T]?: DeepPartial<T[K]>;
} : Partial<T>;
type KeysOfUnion<T> = T extends T ? keyof T : never;
export type Exact<P, I extends P> = P extends Builtin ? P : P & {
    [K in keyof P]: Exact<P[K], I[K]>;
} & Record<Exclude<keyof I, KeysOfUnion<P>>, never>;
export {};
