import { type WatchTriggerInboxOptions } from "../drainTriggerInbox/schemas";
/**
 * `watchTriggerInbox` is the continuous-consumption variant of
 * `drainTriggerInbox`. Same options surface, same callback shape;
 * the difference is that an empty lease triggers poll-and-wait
 * (with backoff) rather than ending the command. Resolves cleanly
 * on `signal` abort or when a callback throws
 * `ZapierAbortDrainSignal`; rejects on a fatal error or a
 * fail-fast handler error (when `continueOnError` is false).
 */
export declare const watchTriggerInboxPlugin: (sdk: {
    context: {
        api: import("../../..").ApiClient;
        resolveCredentials: () => Promise<string | {
            clientId: string;
            clientSecret: string;
            type?: "client_credentials" | undefined;
            baseUrl?: string | undefined;
            scope?: string | undefined;
        } | {
            clientId: string;
            type?: "pkce" | undefined;
            baseUrl?: string | undefined;
            scope?: string | undefined;
        } | undefined>;
    };
} & {
    leaseTriggerInboxMessages: (options?: {
        inbox: string;
        leaseLimit?: number | undefined;
        leaseSeconds?: number | undefined;
        signal?: AbortSignal | undefined;
    } | undefined) => Promise<{
        data: {
            lease_id: string | null;
            leased_until: string | null;
            results: {
                id: string;
                created_at: string;
                status: string;
                message_attributes: {
                    lease_count: number;
                    error_message: string | null;
                    possible_duplicate_data: boolean;
                };
                payload: Record<string, unknown>;
            }[];
            inbox_attributes: {
                status: string;
                paused_reason: string | null;
            };
        };
    }>;
} & {
    context: {
        meta: {
            leaseTriggerInboxMessages: import("../../..").PluginMeta;
        };
    };
} & {
    ackTriggerInboxMessages: (options?: {
        inbox: string;
        lease: string;
        messages?: string[] | undefined;
    } | undefined) => Promise<{
        data: {
            acked_id: string | null;
            results: {
                id: string;
                created_at: string;
                status: string;
                message_attributes: {
                    lease_count: number;
                    error_message: string | null;
                    possible_duplicate_data: boolean;
                };
            }[];
        };
    }>;
} & {
    context: {
        meta: {
            ackTriggerInboxMessages: import("../../..").PluginMeta;
        };
    };
} & {
    releaseTriggerInboxMessages: (options?: {
        inbox: string;
        lease: string;
        messages?: string[] | undefined;
    } | undefined) => Promise<{
        data: {
            released_id: string | null;
            results: {
                id: string;
                created_at: string;
                status: string;
                message_attributes: {
                    lease_count: number;
                    error_message: string | null;
                    possible_duplicate_data: boolean;
                };
            }[];
        };
    }>;
} & {
    context: {
        meta: {
            releaseTriggerInboxMessages: import("../../..").PluginMeta;
        };
    };
} & {
    context: {
        meta: Record<string, import("../../..").PluginMeta>;
    };
}) => {
    watchTriggerInbox: (options: WatchTriggerInboxOptions) => Promise<void>;
    context: {
        meta: {
            watchTriggerInbox: {
                type: "create";
                description: string;
                itemType: string;
                returnType: string;
                inputSchema: import("zod").ZodObject<{
                    inbox: import("zod").ZodString & {
                        _def: import("zod/v4/core").$ZodStringDef & import("../../..").PositionalMetadata;
                    };
                    onMessage: import("zod").ZodOptional<import("zod").ZodFunction<import("zod/v4/core").$ZodFunctionArgs, import("zod/v4/core").$ZodFunctionOut>>;
                    concurrency: import("zod").ZodOptional<import("zod").ZodNumber>;
                    leaseLimit: import("zod").ZodOptional<import("zod").ZodNumber>;
                    leaseSeconds: import("zod").ZodOptional<import("zod").ZodNumber>;
                    releaseOnError: import("zod").ZodOptional<import("zod").ZodBoolean>;
                    continueOnError: import("zod").ZodOptional<import("zod").ZodBoolean>;
                    onError: import("zod").ZodOptional<import("zod").ZodFunction<import("zod/v4/core").$ZodFunctionArgs, import("zod/v4/core").$ZodFunctionOut>>;
                    signal: import("zod").ZodOptional<import("zod").ZodCustom<AbortSignal, AbortSignal>>;
                    maxDrainIntervalSeconds: import("zod").ZodOptional<import("zod").ZodNumber>;
                }, import("zod/v4/core").$strip>;
                resolvers: {
                    inbox: import("../../..").DynamicResolver<{
                        id: string;
                        created_at: string;
                        name: string | null;
                        status: string;
                        paused_reason: string | null;
                        notification_url: string | null;
                        subscription: {
                            connection_id: string | number | null;
                            app_key: string;
                            action_key: string;
                            inputs: Record<string, unknown>;
                        };
                    }, {}>;
                };
                packages: readonly ["sdk"];
                categories: string[];
                experimental: true;
            };
        };
    };
};
export type WatchTriggerInboxPluginProvides = ReturnType<typeof watchTriggerInboxPlugin>;
//# sourceMappingURL=index.d.ts.map