import type { components, paths } from '../generated/api.js';
import { WorkspaceScopedResource } from './base.js';
export type ListSurfacesParams = NonNullable<paths['/v1/{workspace_id}/surfaces']['get']['parameters']['query']>;
/** `/surfaces/review` is a narrower paged feed without the workspace-list filters. */
export type ListSurfacesForReviewParams = NonNullable<paths['/v1/{workspace_id}/surfaces/review']['get']['parameters']['query']>;
/**
 * Surfaces — short-lived form/intake experiences the platform delivers via
 * SMS / email / web. The full lifecycle is exposed: create, deliver, monitor
 * progress, gate for review, approve / reject / reshape, and archive.
 *
 * @beta New in this release; surface may evolve as the operator review flow
 * stabilizes.
 */
export declare class SurfacesResource extends WorkspaceScopedResource {
    /** List surfaces in the workspace */
    list(params?: ListSurfacesParams): Promise<{
        continuation_token?: number | null | undefined;
        has_more: boolean;
        items: {
            channel?: (components["schemas"]["ChannelType"] | null) | undefined;
            context?: {
                [x: string]: unknown;
            } | undefined;
            created_at?: string | null | undefined;
            delivered_at?: string | null | undefined;
            delivery_metadata?: {
                [x: string]: unknown;
            } | null | undefined;
            description?: string | null | undefined;
            entity_id?: string | null | undefined;
            event_id: string;
            expires_at?: string | null | undefined;
            fields?: {
                [x: string]: unknown;
            }[] | undefined;
            fields_count: number;
            id: string;
            opened_at?: string | null | undefined;
            resource_type?: string | null | undefined;
            status: components["schemas"]["SurfaceStatus"];
            submitted_at?: string | null | undefined;
            submitted_data?: {
                [x: string]: unknown;
            } | null | undefined;
            title?: string | null | undefined;
            url?: string | null | undefined;
            use_case_id?: string | null | undefined;
        }[];
        total?: number | null | undefined;
    } & import("../index.js").ResponseMetadata>;
    listAutoPaging(params?: ListSurfacesParams): AsyncGenerator<{
        channel?: (components["schemas"]["ChannelType"] | null) | undefined;
        context?: {
            [x: string]: unknown;
        } | undefined;
        created_at?: string | null | undefined;
        delivered_at?: string | null | undefined;
        delivery_metadata?: {
            [x: string]: unknown;
        } | null | undefined;
        description?: string | null | undefined;
        entity_id?: string | null | undefined;
        event_id: string;
        expires_at?: string | null | undefined;
        fields?: {
            [x: string]: unknown;
        }[] | undefined;
        fields_count: number;
        id: string;
        opened_at?: string | null | undefined;
        resource_type?: string | null | undefined;
        status: components["schemas"]["SurfaceStatus"];
        submitted_at?: string | null | undefined;
        submitted_data?: {
            [x: string]: unknown;
        } | null | undefined;
        title?: string | null | undefined;
        url?: string | null | undefined;
        use_case_id?: string | null | undefined;
    }, any, any>;
    /** Surfaces awaiting review (pending approval / rejection) */
    listForReview(params?: ListSurfacesForReviewParams): Promise<{
        continuation_token?: number | null | undefined;
        has_more: boolean;
        items: {
            channel?: (components["schemas"]["ChannelType"] | null) | undefined;
            context?: {
                [x: string]: unknown;
            } | undefined;
            created_at?: string | null | undefined;
            delivered_at?: string | null | undefined;
            delivery_metadata?: {
                [x: string]: unknown;
            } | null | undefined;
            description?: string | null | undefined;
            entity_id?: string | null | undefined;
            event_id: string;
            expires_at?: string | null | undefined;
            fields?: {
                [x: string]: unknown;
            }[] | undefined;
            fields_count: number;
            id: string;
            opened_at?: string | null | undefined;
            resource_type?: string | null | undefined;
            status: components["schemas"]["SurfaceStatus"];
            submitted_at?: string | null | undefined;
            submitted_data?: {
                [x: string]: unknown;
            } | null | undefined;
            title?: string | null | undefined;
            url?: string | null | undefined;
            use_case_id?: string | null | undefined;
        }[];
        total?: number | null | undefined;
    } & import("../index.js").ResponseMetadata>;
    /** Create a surface (form definition + delivery config) */
    create(body: components['schemas']['CreateSurfaceRequest']): Promise<{
        channel: components["schemas"]["ChannelType"];
        created_at: string;
        description?: string | null | undefined;
        entity_id: string;
        event_id: string;
        expires_at: string;
        fields_count: number;
        id: string;
        status: components["schemas"]["SurfaceStatus"];
        title: string;
        token?: string | null | undefined;
        url?: string | null | undefined;
        use_case_id?: string | null | undefined;
    } & import("../index.js").ResponseMetadata>;
    /** Get a single surface */
    get(surfaceId: string): Promise<{
        channel?: (components["schemas"]["ChannelType"] | null) | undefined;
        context?: {
            [x: string]: unknown;
        } | undefined;
        created_at?: string | null | undefined;
        delivered_at?: string | null | undefined;
        delivery_metadata?: {
            [x: string]: unknown;
        } | null | undefined;
        description?: string | null | undefined;
        entity_id?: string | null | undefined;
        event_id: string;
        expires_at?: string | null | undefined;
        fields?: {
            [x: string]: unknown;
        }[] | undefined;
        fields_count: number;
        id: string;
        opened_at?: string | null | undefined;
        resource_type?: string | null | undefined;
        status: components["schemas"]["SurfaceStatus"];
        submitted_at?: string | null | undefined;
        submitted_data?: {
            [x: string]: unknown;
        } | null | undefined;
        title?: string | null | undefined;
        url?: string | null | undefined;
        use_case_id?: string | null | undefined;
    } & import("../index.js").ResponseMetadata>;
    /** Update surface metadata or fields */
    update(surfaceId: string, body: components['schemas']['UpdateSurfaceRequest']): Promise<{
        channel?: (components["schemas"]["ChannelType"] | null) | undefined;
        context?: {
            [x: string]: unknown;
        } | undefined;
        created_at?: string | null | undefined;
        delivered_at?: string | null | undefined;
        delivery_metadata?: {
            [x: string]: unknown;
        } | null | undefined;
        description?: string | null | undefined;
        entity_id?: string | null | undefined;
        event_id: string;
        expires_at?: string | null | undefined;
        fields?: {
            [x: string]: unknown;
        }[] | undefined;
        fields_count: number;
        id: string;
        opened_at?: string | null | undefined;
        resource_type?: string | null | undefined;
        status: components["schemas"]["SurfaceStatus"];
        submitted_at?: string | null | undefined;
        submitted_data?: {
            [x: string]: unknown;
        } | null | undefined;
        title?: string | null | undefined;
        url?: string | null | undefined;
        use_case_id?: string | null | undefined;
    } & import("../index.js").ResponseMetadata>;
    /** Archive (soft-delete) a surface */
    archive(surfaceId: string): Promise<{
        status: "archived";
        surface_id: string;
    } & import("../index.js").ResponseMetadata>;
    /** Deliver the surface to the recipient (SMS/email/etc.) */
    deliver(surfaceId: string, body: components['schemas']['DeliverSurfaceRequest']): Promise<{
        channel?: (components["schemas"]["ChannelType"] | null) | undefined;
        channel_address: string;
        delivered_at?: string | null | undefined;
        delivery_provider?: string | null | undefined;
        from_address?: string | null | undefined;
        from_number?: string | null | undefined;
        message_id?: string | null | undefined;
        status: "delivered" | "pending_review";
        surface_id: string;
        url?: string | null | undefined;
    } & import("../index.js").ResponseMetadata>;
    /** Get fill / completion progress for a surface */
    getProgress(surfaceId: string): Promise<{
        empty_count: number;
        empty_keys: string[];
        filled_count: number;
        filled_keys: string[];
        required_empty_keys: string[];
        surface_id: string;
        total_fields: number;
    } & import("../index.js").ResponseMetadata>;
    /** Approve a pending-review surface */
    approve(surfaceId: string): Promise<{
        action: "approved" | "rejected";
        status: components["schemas"]["SurfaceStatus"];
        surface_id: string;
    } & import("../index.js").ResponseMetadata>;
    /** Reject a pending-review surface */
    reject(surfaceId: string, body: components['schemas']['RejectSurfaceRequest']): Promise<{
        action: "approved" | "rejected";
        status: components["schemas"]["SurfaceStatus"];
        surface_id: string;
    } & import("../index.js").ResponseMetadata>;
    /** Reshape — clone the surface with refined fields (review redirect) */
    reshape(surfaceId: string): Promise<{
        channel: components["schemas"]["ChannelType"];
        created_at: string;
        description?: string | null | undefined;
        entity_id: string;
        event_id: string;
        expires_at: string;
        fields_count: number;
        id: string;
        status: components["schemas"]["SurfaceStatus"];
        title: string;
        token?: string | null | undefined;
        url?: string | null | undefined;
        use_case_id?: string | null | undefined;
    } & import("../index.js").ResponseMetadata>;
}
//# sourceMappingURL=surfaces.d.ts.map