/**
 * Generated by orval v8.19.0 🍺
 * Do not edit manually.
 * Webitel API
 * OpenAPI spec version: 24.04.0
 */
import type { SearchContactsMode } from './searchContactsMode';
export type SearchContactsParams = {
    /**
     * Page number of result records.   _default(1); offset=(size*(page-1));_
     *
     * ```javascript
     * let
     *     offset = 0
     *   , page = req.page
     * ;
     * if (page <= 0)
     *     page = 1;
     * if (page > 1)
     *     offset = ((page-1)*size);
     * // . . .
     * ```
     */
    page?: number;
    /**
     * Limit of result page records count.   _default(16); limit=(size<=0?-1:size+1);_
     *
     * ```javascript
     * const
     *     default = 16
     *   , maximum = 32
     * ;
     * let limit = req.size;
     * if (limit <= 0)
     *     limit = default;
     * if (maximum < limit)
     *     limit = maximum;
     * // . . .
     * ```
     */
    size?: number;
    /**
     * Search term:
     * `?` - matches any character
     * `*` - matches 0 or more characters
     * Used to query records within a set of `qin` fields, eg: name,emails{type},labels etc...
     */
    q?: string;
    /**
     * Sort result dataset of records by fields.
     * ```
     * sort ::= *( ORDER name )
     *
     * ORDER  = ASC / DESC
     * DESC   = "-" / "!"
     * ASC    = [ "+" ]   ; Default
     * ```
     *
     * Fields available
     *
     * - `id`(seq)
     * - `domain`{name}
     * - `created_at`
     * - `created_by`{name}
     * - `updated_at`
     * - `updated_by`{name}
     *
     * Use ?fields=`field.sort()` option to sort Edge fields.
     * @items.pattern ^[+|-|!]?\w+$
     */
    sort?: string[];
    /**
     * Fields [Q]uery to build result dataset record.
     * ```
     * fields ::= field [ *( "," field ) ]
     * field  ::= name [ *( func ) ] [ inner ]
     * inner  ::= "{" fields "}"
     * funcs  ::= *( func )
     * func   ::= "." name "(" [ args ] ")"
     * name   ::= ALPHA / DIGIT / USCORE
     *
     * ALPHA    = %x41-5A / %x61-7A  ; "A"-"Z" / "a"-"z"
     * DIGIT    = %x30-39            ; "0"-"9"
     * USCORE   = %x5F ; underscore  ; "_"
     * ```
     */
    fields?: string[];
    /**
     * Records with unique IDentifier(s).
     * Accept: `id` -or- `etag`.
     */
    id?: string[];
    /**
     * [Q]uery[IN] is a set of search fields for term `q`.
     * Default: `name{common_name}`.
     */
    qin?: string[];
    /**
     * Source access mode requirement.
     *
     *  - READ: Can `fetch` record. [GET]
     *  - WRITE: Can `update` record. [PUT|PATCH]
     *  - DELETE: Can `delete` record. [DELETE]
     */
    mode?: SearchContactsMode;
    /**
     * Excludes contacts that belong to the specified group ID.
     * - Filters out contacts associated with the given `group_id`.
     */
    notIdGroup?: string;
    /**
     * Filters contacts by the specified group(s).
     * - Includes only contacts that belong to one or more of the given group Group(s).
     */
    group?: string[];
    /**
     * Filters contacts by the specified owner(s).
     * - Includes only contacts whose owner matches one or more of the given Owner(s).
     * - The owner ID corresponds to `contact_id` in the `directory.wbt_user` table.
     */
    owner?: string[];
    /**
     * Filters contacts by the specified label(s).
     * - Includes only contacts that have one or more of the given Label(s).
     */
    label?: string[];
    /**
     * Filters contacts based on whether they are user-associated.
     * - `true`  → Includes only user-associated contacts.
     * - `false` → Includes only contacts that are NOT user-associated.
     * - A contact is considered user-associated if it exists in `directory.wbt_user`.
     */
    user?: boolean;
};
