import type { RetryConfig, S2RequestOptions } from "./common.js"; import type { Client } from "./generated/client/types.gen.js"; import type * as Types from "./types.js"; /** * Account-scoped helper for listing, creating, ensuring, deleting, and reconfiguring basins. * * Retrieve this via {@link S2.basins}. Each method retries according to the client-level retry config. */ export declare class S2Basins { private readonly client; private readonly retryConfig; constructor(client: Client, retryConfig: RetryConfig); /** * List basins. * * @param args.prefix Return basins whose names start with the given prefix * @param args.startAfter Name to start after (for pagination) * @param args.limit Max results (up to 1000) */ list(args?: Types.ListBasinsInput, options?: S2RequestOptions): Promise; /** * List all basins with automatic pagination. * Returns a lazy async iterable that fetches pages as needed. * * @param args - Optional options: `prefix` to filter by name prefix, `limit` for max results per page, `includeDeleted` to include basins pending deletion * * @example * ```ts * for await (const basin of s2.basins.listAll({ prefix: "my-" })) { * console.log(basin.name); * } * ``` */ listAll(args?: Types.ListAllBasinsInput, options?: S2RequestOptions): AsyncIterable; /** * Create a basin. * * @param args.basin Globally unique basin name (8-48 chars, lowercase letters, numbers, hyphens; cannot begin or end with a hyphen) * @param args.config Optional basin configuration (e.g. defaultStreamConfig) * @param args.location Basin location */ create(args: Types.CreateBasinInput, options?: S2RequestOptions): Promise; /** * Get basin configuration. * * @param args.basin Basin name */ getConfig(args: Types.GetBasinConfigInput, options?: S2RequestOptions): Promise; /** * Delete a basin. * * @param args.basin Basin name */ delete(args: Types.DeleteBasinInput, options?: S2RequestOptions): Promise; /** * Ensure a basin. * * Creates the basin if it doesn't exist, or ensures its config exactly matches the * provided configuration after defaults are applied. Uses HTTP PUT semantics and is always * idempotent. * * Returns `result: "created"` with the basin info if the basin was newly created, * `result: "updated"` if its config changed, or `result: "noop"` if no write was needed. */ ensure(args: Types.EnsureBasinInput, options?: S2RequestOptions): Promise; /** * Reconfigure a basin. * * @param args Configuration for the basin to reconfigure (including basin name and fields to change) */ reconfigure(args: Types.ReconfigureBasinInput, options?: S2RequestOptions): Promise; } //# sourceMappingURL=basins.d.ts.map