import { z } from 'zod';
import { APIClient } from '../api.ts';
export declare const OrgS3Resource: z.ZodObject<{
    bucket_name: z.ZodString;
    access_key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    secret_key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    region: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endpoint: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    cloud_region: z.ZodString;
    org_id: z.ZodString;
    org_name: z.ZodString;
    bucket_type: z.ZodString;
    internal: z.ZodBoolean;
    description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    object_count: z.ZodOptional<z.ZodNumber>;
    total_size: z.ZodOptional<z.ZodNumber>;
    last_event_at: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export declare const OrgDBResource: z.ZodObject<{
    name: z.ZodString;
    description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    username: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    password: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    cloud_region: z.ZodString;
    org_id: z.ZodString;
    org_name: z.ZodString;
    internal: z.ZodBoolean;
}, z.core.$strip>;
export declare const OrgResourceListResponse: z.ZodObject<{
    s3: z.ZodArray<z.ZodObject<{
        bucket_name: z.ZodString;
        access_key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        secret_key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        region: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        endpoint: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        cloud_region: z.ZodString;
        org_id: z.ZodString;
        org_name: z.ZodString;
        bucket_type: z.ZodString;
        internal: z.ZodBoolean;
        description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        object_count: z.ZodOptional<z.ZodNumber>;
        total_size: z.ZodOptional<z.ZodNumber>;
        last_event_at: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>;
    db: z.ZodArray<z.ZodObject<{
        name: z.ZodString;
        description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        username: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        password: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        cloud_region: z.ZodString;
        org_id: z.ZodString;
        org_name: z.ZodString;
        internal: z.ZodBoolean;
    }, z.core.$strip>>;
}, z.core.$strip>;
export declare const OrgResourceListResponseSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
    success: z.ZodLiteral<false>;
    message: z.ZodString;
    code: z.ZodOptional<z.ZodString>;
}, z.core.$strip>, z.ZodObject<{
    success: z.ZodLiteral<true>;
    data: z.ZodObject<{
        s3: z.ZodArray<z.ZodObject<{
            bucket_name: z.ZodString;
            access_key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
            secret_key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
            region: z.ZodOptional<z.ZodNullable<z.ZodString>>;
            endpoint: z.ZodOptional<z.ZodNullable<z.ZodString>>;
            cloud_region: z.ZodString;
            org_id: z.ZodString;
            org_name: z.ZodString;
            bucket_type: z.ZodString;
            internal: z.ZodBoolean;
            description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
            object_count: z.ZodOptional<z.ZodNumber>;
            total_size: z.ZodOptional<z.ZodNumber>;
            last_event_at: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>>;
        db: z.ZodArray<z.ZodObject<{
            name: z.ZodString;
            description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
            username: z.ZodOptional<z.ZodNullable<z.ZodString>>;
            password: z.ZodOptional<z.ZodNullable<z.ZodString>>;
            url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
            cloud_region: z.ZodString;
            org_id: z.ZodString;
            org_name: z.ZodString;
            internal: z.ZodBoolean;
        }, z.core.$strip>>;
    }, z.core.$strip>;
}, z.core.$strip>], "success">;
export type OrgResourceListResponse = z.infer<typeof OrgResourceListResponseSchema>;
export type OrgResourceList = z.infer<typeof OrgResourceListResponse>;
export type OrgS3Resource = z.infer<typeof OrgS3Resource>;
export type OrgDBResource = z.infer<typeof OrgDBResource>;
export type ResourceSortField = 'name' | 'created' | 'region';
export declare const ResourceSortFieldSchema: z.ZodEnum<{
    name: "name";
    created: "created";
    region: "region";
}>;
export declare const ListOrgResourcesOptionsSchema: z.ZodObject<{
    type: z.ZodOptional<z.ZodEnum<{
        s3: "s3";
        db: "db";
        all: "all";
    }>>;
    name: z.ZodOptional<z.ZodString>;
    orgId: z.ZodOptional<z.ZodString>;
    limit: z.ZodOptional<z.ZodNumber>;
    offset: z.ZodOptional<z.ZodNumber>;
    sort: z.ZodOptional<z.ZodEnum<{
        name: "name";
        created: "created";
        region: "region";
    }>>;
    direction: z.ZodOptional<z.ZodEnum<{
        asc: "asc";
        desc: "desc";
    }>>;
}, z.core.$strip>;
export type ListOrgResourcesOptions = z.infer<typeof ListOrgResourcesOptionsSchema>;
/**
 * List all resources for the authenticated organization (across all regions)
 *
 * @param client - Catalyst API client (must be authenticated)
 * @param options - Optional filters including orgId for CLI auth
 * @returns List of S3 and DB resources with their cloud regions
 *
 * @example
 * // Get all resources (SDK auth - orgId from context)
 * const all = await listOrgResources(client);
 *
 * @example
 * // Get all resources (CLI auth - orgId required)
 * const all = await listOrgResources(client, { orgId: 'org_123' });
 *
 * @example
 * // Get only S3 buckets
 * const s3Only = await listOrgResources(client, { type: 's3', orgId: 'org_123' });
 *
 * @example
 * // Get only DBs
 * const dbsOnly = await listOrgResources(client, { type: 'db', orgId: 'org_123' });
 */
export declare function listOrgResources(client: APIClient, options?: ListOrgResourcesOptions): Promise<OrgResourceList>;
//# sourceMappingURL=resources.d.ts.map