import * as Core from 'cloudflare/core';
import { APIResource } from 'cloudflare/resource';
import * as ListsAPI from 'cloudflare/resources/zero-trust/gateway/lists/lists';
import * as ItemsAPI from 'cloudflare/resources/zero-trust/gateway/lists/items';
import { SinglePage } from 'cloudflare/pagination';
export declare class Lists extends APIResource {
    items: ItemsAPI.Items;
    /**
     * Creates a new Zero Trust list.
     */
    create(params: ListCreateParams, options?: Core.RequestOptions): Core.APIPromise<ListCreateResponse>;
    /**
     * Updates a configured Zero Trust list.
     */
    update(listId: string, params: ListUpdateParams, options?: Core.RequestOptions): Core.APIPromise<ZeroTrustGatewayLists>;
    /**
     * Fetches all Zero Trust lists for an account.
     */
    list(params: ListListParams, options?: Core.RequestOptions): Core.PagePromise<ZeroTrustGatewayListsSinglePage, ZeroTrustGatewayLists>;
    /**
     * Deletes a Zero Trust list.
     */
    delete(listId: string, params: ListDeleteParams, options?: Core.RequestOptions): Core.APIPromise<ListDeleteResponse>;
    /**
     * Appends or removes an item from a configured Zero Trust list.
     */
    edit(listId: string, params: ListEditParams, options?: Core.RequestOptions): Core.APIPromise<ZeroTrustGatewayLists>;
    /**
     * Fetches a single Zero Trust list.
     */
    get(listId: string, params: ListGetParams, options?: Core.RequestOptions): Core.APIPromise<ZeroTrustGatewayLists>;
}
export declare class ZeroTrustGatewayListsSinglePage extends SinglePage<ZeroTrustGatewayLists> {
}
export interface ZeroTrustGatewayLists {
    /**
     * API Resource UUID tag.
     */
    id?: string;
    /**
     * The number of items in the list.
     */
    count?: number;
    created_at?: string;
    /**
     * The description of the list.
     */
    description?: string;
    /**
     * The name of the list.
     */
    name?: string;
    /**
     * The type of list.
     */
    type?: 'SERIAL' | 'URL' | 'DOMAIN' | 'EMAIL' | 'IP';
    updated_at?: string;
}
export interface ListCreateResponse {
    /**
     * API Resource UUID tag.
     */
    id?: string;
    created_at?: string;
    /**
     * The description of the list.
     */
    description?: string;
    /**
     * The items in the list.
     */
    items?: Array<ListCreateResponse.Item>;
    /**
     * The name of the list.
     */
    name?: string;
    /**
     * The type of list.
     */
    type?: 'SERIAL' | 'URL' | 'DOMAIN' | 'EMAIL' | 'IP';
    updated_at?: string;
}
export declare namespace ListCreateResponse {
    interface Item {
        created_at?: string;
        /**
         * The value of the item in a list.
         */
        value?: string;
    }
}
export type ListDeleteResponse = unknown | string;
export interface ListCreateParams {
    /**
     * Path param:
     */
    account_id: string;
    /**
     * Body param: The name of the list.
     */
    name: string;
    /**
     * Body param: The type of list.
     */
    type: 'SERIAL' | 'URL' | 'DOMAIN' | 'EMAIL' | 'IP';
    /**
     * Body param: The description of the list.
     */
    description?: string;
    /**
     * Body param: The items in the list.
     */
    items?: Array<ListCreateParams.Item>;
}
export declare namespace ListCreateParams {
    interface Item {
        /**
         * The value of the item in a list.
         */
        value?: string;
    }
}
export interface ListUpdateParams {
    /**
     * Path param:
     */
    account_id: string;
    /**
     * Body param: The name of the list.
     */
    name: string;
    /**
     * Body param: The description of the list.
     */
    description?: string;
}
export interface ListListParams {
    account_id: string;
}
export interface ListDeleteParams {
    account_id: string;
}
export interface ListEditParams {
    /**
     * Path param:
     */
    account_id: string;
    /**
     * Body param: The items in the list.
     */
    append?: Array<ListEditParams.Append>;
    /**
     * Body param: A list of the item values you want to remove.
     */
    remove?: Array<string>;
}
export declare namespace ListEditParams {
    interface Append {
        /**
         * The value of the item in a list.
         */
        value?: string;
    }
}
export interface ListGetParams {
    account_id: string;
}
export declare namespace Lists {
    export import ZeroTrustGatewayLists = ListsAPI.ZeroTrustGatewayLists;
    export import ListCreateResponse = ListsAPI.ListCreateResponse;
    export import ListDeleteResponse = ListsAPI.ListDeleteResponse;
    export import ZeroTrustGatewayListsSinglePage = ListsAPI.ZeroTrustGatewayListsSinglePage;
    export import ListCreateParams = ListsAPI.ListCreateParams;
    export import ListUpdateParams = ListsAPI.ListUpdateParams;
    export import ListListParams = ListsAPI.ListListParams;
    export import ListDeleteParams = ListsAPI.ListDeleteParams;
    export import ListEditParams = ListsAPI.ListEditParams;
    export import ListGetParams = ListsAPI.ListGetParams;
    export import Items = ItemsAPI.Items;
    export import ItemListResponse = ItemsAPI.ItemListResponse;
    export import ItemListResponsesSinglePage = ItemsAPI.ItemListResponsesSinglePage;
    export import ItemListParams = ItemsAPI.ItemListParams;
}
//# sourceMappingURL=lists.d.ts.map