import type { ApiClient } from "../../api";
import type { ConnectionsPluginProvides } from "../connections";
import { z } from "zod";
export interface ZapierFetchInitOptions extends RequestInit {
    /** @deprecated Use `connection` instead. */
    connectionId?: string | number;
    connection?: string | number;
    /** @deprecated Use `connection` instead. */
    authenticationId?: string | number;
    callbackUrl?: string;
    /** Maximum seconds to wait for a response, subject to a server-side limit. */
    maxTime?: number;
}
/**
 * Fetch plugin, the primary way to make authenticated HTTP requests through Zapier's Relay service.
 * Mirrors the native fetch(url, init?) signature with additional Zapier-specific options.
 */
export declare const fetchPlugin: (sdk: {
    context: {
        api: ApiClient;
    } & ConnectionsPluginProvides["context"];
} & {
    context: import("../eventEmission").EventEmissionContext;
} & {
    context: {
        meta: Record<string, import("../..").PluginMeta>;
    };
}) => {
    fetch: (url: string | URL, init?: ZapierFetchInitOptions) => Promise<Response>;
    context: {
        meta: {
            fetch: {
                description: string;
                packages: string[];
                categories: string[];
                returnType: string;
                inputParameters: ({
                    name: string;
                    schema: z.ZodUnion<readonly [z.ZodString, z.ZodCustom<URL, URL>]>;
                } | {
                    name: string;
                    schema: z.ZodOptional<z.ZodObject<{
                        method: z.ZodOptional<z.ZodEnum<{
                            POST: "POST";
                            GET: "GET";
                            PUT: "PUT";
                            DELETE: "DELETE";
                            PATCH: "PATCH";
                            HEAD: "HEAD";
                            OPTIONS: "OPTIONS";
                        }>>;
                        headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
                        body: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<FormData, FormData>, z.ZodCustom<URLSearchParams, URLSearchParams>, z.ZodRecord<z.ZodString, z.ZodUnknown>]>>;
                        connectionId: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
                        connection: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
                        authenticationId: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
                        callbackUrl: z.ZodOptional<z.ZodString>;
                        maxTime: z.ZodOptional<z.ZodNumber>;
                    }, z.core.$strip>>;
                })[];
            };
        };
    };
};
export type FetchPluginProvides = ReturnType<typeof fetchPlugin>;
//# sourceMappingURL=index.d.ts.map