/**
 * Cloudflare FILTERS API
 *
 * Generated from Cloudflare TypeScript SDK.
 * DO NOT EDIT - regenerate with: bun scripts/generate.ts --service filters
 */
import * as Schema from "effect/Schema";
import type * as HttpClient from "effect/unstable/http/HttpClient";
import * as API from "../client/api.ts";
import type { Credentials } from "../credentials.ts";
import { type DefaultErrors } from "../errors.ts";
export interface GetFilterRequest {
    filterId: string;
    /** Defines an identifier. */
    zoneId: string;
}
export declare const GetFilterRequest: Schema.Schema<GetFilterRequest>;
export interface GetFilterResponse {
    /** The unique identifier of the filter. */
    id?: string | null;
    /** An informative summary of the filter. */
    description?: string | null;
    /** The filter expression. For more information, refer to [Expressions](https://developers.cloudflare.com/ruleset-engine/rules-language/expressions/). */
    expression?: string | null;
    /** When true, indicates that the filter is currently paused. */
    paused?: boolean | null;
    /** A short reference tag. Allows you to select related filters. */
    ref?: string | null;
}
export declare const GetFilterResponse: Schema.Schema<GetFilterResponse>;
export type GetFilterError = DefaultErrors;
export declare const getFilter: API.OperationMethod<GetFilterRequest, GetFilterResponse, GetFilterError, Credentials | HttpClient.HttpClient>;
export interface ListFiltersRequest {
    /** Path param: Defines an identifier. */
    zoneId: string;
    page?: number;
    perPage?: number;
    /** Query param: The unique identifier of the filter. */
    id?: string;
    /** Query param: A case-insensitive string to find in the description. */
    description?: string;
    /** Query param: A case-insensitive string to find in the expression. */
    expression?: string;
    /** Query param: When true, indicates that the filter is currently paused. */
    paused?: boolean;
    /** Query param: The filter ref (a short reference tag) to search for. Must be an exact match. */
    ref?: string;
}
export declare const ListFiltersRequest: Schema.Schema<ListFiltersRequest>;
export interface ListFiltersResponse {
    result: {
        id?: string | null;
        description?: string | null;
        expression?: string | null;
        paused?: boolean | null;
        ref?: string | null;
    }[];
    resultInfo?: {
        count?: number | null;
        page?: number | null;
        perPage?: number | null;
        totalCount?: number | null;
    } | null;
}
export declare const ListFiltersResponse: Schema.Schema<ListFiltersResponse>;
export type ListFiltersError = DefaultErrors;
export declare const listFilters: API.PaginatedOperationMethod<ListFiltersRequest, ListFiltersResponse, ListFiltersError, Credentials | HttpClient.HttpClient>;
export interface CreateFilterRequest {
    /** Path param: Defines an identifier. */
    zoneId: string;
    /** Body param: */
    body: {
        description?: string;
        expression?: string;
        paused?: boolean;
        ref?: string;
    }[];
}
export declare const CreateFilterRequest: Schema.Schema<CreateFilterRequest>;
export interface CreateFilterResponse {
    result: {
        id?: string | null;
        description?: string | null;
        expression?: string | null;
        paused?: boolean | null;
        ref?: string | null;
    }[];
}
export declare const CreateFilterResponse: Schema.Schema<CreateFilterResponse>;
export type CreateFilterError = DefaultErrors;
export declare const createFilter: API.PaginatedOperationMethod<CreateFilterRequest, CreateFilterResponse, CreateFilterError, Credentials | HttpClient.HttpClient>;
export interface UpdateFilterRequest {
    filterId: string;
    /** Path param: Defines an identifier. */
    zoneId: string;
    /** Body param: An informative summary of the filter. */
    description?: string;
    /** Body param: The filter expression. For more information, refer to [Expressions](https://developers.cloudflare.com/ruleset-engine/rules-language/expressions/). */
    expression?: string;
    /** Body param: When true, indicates that the filter is currently paused. */
    paused?: boolean;
    /** Body param: A short reference tag. Allows you to select related filters. */
    ref?: string;
}
export declare const UpdateFilterRequest: Schema.Schema<UpdateFilterRequest>;
export interface UpdateFilterResponse {
    /** The unique identifier of the filter. */
    id?: string | null;
    /** An informative summary of the filter. */
    description?: string | null;
    /** The filter expression. For more information, refer to [Expressions](https://developers.cloudflare.com/ruleset-engine/rules-language/expressions/). */
    expression?: string | null;
    /** When true, indicates that the filter is currently paused. */
    paused?: boolean | null;
    /** A short reference tag. Allows you to select related filters. */
    ref?: string | null;
}
export declare const UpdateFilterResponse: Schema.Schema<UpdateFilterResponse>;
export type UpdateFilterError = DefaultErrors;
export declare const updateFilter: API.OperationMethod<UpdateFilterRequest, UpdateFilterResponse, UpdateFilterError, Credentials | HttpClient.HttpClient>;
export interface DeleteFilterRequest {
    filterId: string;
    /** Defines an identifier. */
    zoneId: string;
}
export declare const DeleteFilterRequest: Schema.Schema<DeleteFilterRequest>;
export interface DeleteFilterResponse {
    /** The unique identifier of the filter. */
    id: string;
}
export declare const DeleteFilterResponse: Schema.Schema<DeleteFilterResponse>;
export type DeleteFilterError = DefaultErrors;
export declare const deleteFilter: API.OperationMethod<DeleteFilterRequest, DeleteFilterResponse, DeleteFilterError, Credentials | HttpClient.HttpClient>;
export interface BulkDeleteFiltersRequest {
    /** Path param: Defines an identifier. */
    zoneId: string;
    /** Query param: */
    id: string[];
}
export declare const BulkDeleteFiltersRequest: Schema.Schema<BulkDeleteFiltersRequest>;
export type BulkDeleteFiltersResponse = {
    id?: string | null;
}[];
export declare const BulkDeleteFiltersResponse: Schema.Schema<BulkDeleteFiltersResponse>;
export type BulkDeleteFiltersError = DefaultErrors;
export declare const bulkDeleteFilters: API.OperationMethod<BulkDeleteFiltersRequest, BulkDeleteFiltersResponse, BulkDeleteFiltersError, Credentials | HttpClient.HttpClient>;
export interface BulkPutFiltersRequest {
    /** Path param: Defines an identifier. */
    zoneId: string;
    /** Body param: */
    body: {
        description?: string;
        expression?: string;
        paused?: boolean;
        ref?: string;
    }[];
}
export declare const BulkPutFiltersRequest: Schema.Schema<BulkPutFiltersRequest>;
export interface BulkPutFiltersResponse {
    result: {
        id?: string | null;
        description?: string | null;
        expression?: string | null;
        paused?: boolean | null;
        ref?: string | null;
    }[];
}
export declare const BulkPutFiltersResponse: Schema.Schema<BulkPutFiltersResponse>;
export type BulkPutFiltersError = DefaultErrors;
export declare const bulkPutFilters: API.PaginatedOperationMethod<BulkPutFiltersRequest, BulkPutFiltersResponse, BulkPutFiltersError, Credentials | HttpClient.HttpClient>;
//# sourceMappingURL=filters.d.ts.map