> ISPO SDK documentation. [HTML](https://ispo.ai/docs/interfaces/core.ProjectSurfacesApi.html) · [Documentation index](https://ispo.ai/docs/llms.txt)

# Interface ProjectSurfacesApi

```typescript
interface ProjectSurfacesApi {
    close(surfaceId: string): Promise<ProjectSurfaceCloseResult>;
    current(): ProjectSurfaceContext;
    focus(surfaceId: string): Promise<ProjectSurfaceFocusResult>;
    list(): Promise<ProjectSurfaceListResult>;
    open(surfaceId: string): Promise<ProjectSurfaceOpenResult>;
}
```

Types: [close](#close-1), [ProjectSurfaceCloseResult](core.ProjectSurfaceCloseResult.md), [current](#current-1), [ProjectSurfaceContext](../types/core.ProjectSurfaceContext.md), [focus](#focus-1), [ProjectSurfaceFocusResult](core.ProjectSurfaceFocusResult.md), [list](#list-1), [ProjectSurfaceListResult](core.ProjectSurfaceListResult.md), [open](#open-1), [ProjectSurfaceOpenResult](core.ProjectSurfaceOpenResult.md)

##### Index

### <a id="methods"></a>Methods

[close](#close) [current](#current) [focus](#focus) [list](#list) [open](#open)

## <a id="methods-1"></a>Methods

### <a id="close"></a>close

*   <a id="close-1"></a>
    
    ```typescript
    close(surfaceId: string): Promise<ProjectSurfaceCloseResult>
    ```
    
    Types: [ProjectSurfaceCloseResult](core.ProjectSurfaceCloseResult.md)
    
    #### Parameters
    
    *   surfaceId: string
    
    #### Returns Promise<[ProjectSurfaceCloseResult](core.ProjectSurfaceCloseResult.md)\>
    

**Authority for `ui.surfaces.close`**

No static request token. No static standing capability. Resource bindings, identity checks, or interactive consent may still apply.

Handle structured `ProjectRpcError` failures. A timeout does not guarantee cancellation; do not automatically retry effects without a documented idempotency contract. [Method authority and recovery](/docs/documents/Method_authority.md).

### <a id="current"></a>current

*   <a id="current-1"></a>
    
    ```typescript
    current(): ProjectSurfaceContext
    ```
    
    Types: [ProjectSurfaceContext](../types/core.ProjectSurfaceContext.md)
    
    #### Returns [ProjectSurfaceContext](../types/core.ProjectSurfaceContext.md)
    

### <a id="focus"></a>focus

*   <a id="focus-1"></a>
    
    ```typescript
    focus(surfaceId: string): Promise<ProjectSurfaceFocusResult>
    ```
    
    Types: [ProjectSurfaceFocusResult](core.ProjectSurfaceFocusResult.md)
    
    #### Parameters
    
    *   surfaceId: string
    
    #### Returns Promise<[ProjectSurfaceFocusResult](core.ProjectSurfaceFocusResult.md)\>
    

**Authority for `ui.surfaces.focus`**

Reviewed request token: `ui.detached-surface`. Standing capability: `ui.detachedSurface`.

Handle structured `ProjectRpcError` failures. A timeout does not guarantee cancellation; do not automatically retry effects without a documented idempotency contract. [Method authority and recovery](/docs/documents/Method_authority.md).

### <a id="list"></a>list

*   <a id="list-1"></a>
    
    ```typescript
    list(): Promise<ProjectSurfaceListResult>
    ```
    
    Types: [ProjectSurfaceListResult](core.ProjectSurfaceListResult.md)
    
    #### Returns Promise<[ProjectSurfaceListResult](core.ProjectSurfaceListResult.md)\>
    

**Authority for `ui.surfaces.list`**

Reviewed request token: `ui.detached-surface`. No static standing capability. Resource bindings, identity checks, or interactive consent may still apply.

Handle structured `ProjectRpcError` failures. A timeout does not guarantee cancellation; do not automatically retry effects without a documented idempotency contract. [Method authority and recovery](/docs/documents/Method_authority.md).

### <a id="open"></a>open

*   <a id="open-1"></a>
    
    ```typescript
    open(surfaceId: string): Promise<ProjectSurfaceOpenResult>
    ```
    
    Types: [ProjectSurfaceOpenResult](core.ProjectSurfaceOpenResult.md)
    
    #### Parameters
    
    *   surfaceId: string
    
    #### Returns Promise<[ProjectSurfaceOpenResult](core.ProjectSurfaceOpenResult.md)\>
    

**Authority for `ui.surfaces.open`**

Reviewed request token: `ui.detached-surface`. Standing capability: `ui.detachedSurface`.

Handle structured `ProjectRpcError` failures. A timeout does not guarantee cancellation; do not automatically retry effects without a documented idempotency contract. [Method authority and recovery](/docs/documents/Method_authority.md).
