/**
 * Base class for workspace-scoped resources.
 *
 * Uses the openapi-fetch client (with auth + error + retry middleware)
 * injected from AmigoClient. Resources call typed HTTP methods that
 * flow through the middleware chain automatically.
 */
import { type PlatformFetch } from '../core/openapi-client.js';
import { type ScopedRequestOptions } from '../core/request-options.js';
import { extractData } from '../core/utils.js';
export declare abstract class WorkspaceScopedResource {
    protected readonly client: PlatformFetch;
    protected readonly workspaceId: string;
    constructor(client: PlatformFetch, workspaceId: string);
    withOptions(options: ScopedRequestOptions): this;
    protected iteratePaginatedList<TPage extends {
        items?: readonly unknown[];
        has_more?: boolean;
        continuation_token?: number | null;
    }, TParams>(fetchPage: (params: TParams) => Promise<TPage>, params: TParams): AsyncGenerator<TPage extends {
        items?: readonly (infer TItem)[];
    } ? TItem : never>;
    protected iterateOffsetPaginatedList<TPage extends {
        has_more?: boolean;
        next_offset?: number | null;
    }, TItem, TParams>(fetchPage: (params: TParams) => Promise<TPage>, selectItems: (page: TPage) => readonly TItem[], params: TParams): AsyncGenerator<TItem>;
}
export declare function scopePlatformClient(client: PlatformFetch, options: ScopedRequestOptions): PlatformFetch;
export declare function resolveScopedPlatformClient(client: PlatformFetch): {
    baseClient: PlatformFetch;
    options: ScopedRequestOptions | undefined;
};
export { extractData };
//# sourceMappingURL=base.d.ts.map