import type { CloudConfig } from "./cloud-config.js"; export type CloudProject = { id: string; name: string; slug: string; createdAt: string; }; export type CloudInstance = { id: string; name: string; slug: string; mcpUrl: string; createdAt: string; }; export type CloudApiKey = { id: string; name: string; prefix: string; token?: string; createdAt: string; }; export type UserTokenDto = { id: string; name: string; prefix: string; projectAccess: string; createdAt: string; lastUsedAt: string | null; revokedAt: string | null; }; export type CloudOrganization = { id: string; name: string; slug: string; createdAt: string; }; export type CloudOrganizationMember = { id: string; organizationId: string; userId: string; role: string; invitedBy: string; joinedAt: string; }; export declare class CloudApiError extends Error { status: number; constructor(status: number, message: string); } export declare function getMe(config: CloudConfig): Promise<{ user: { id: string; email: string; name: string; role: string; }; }>; export declare function listProjects(config: CloudConfig): Promise<{ projects: CloudProject[]; }>; export declare function createProject(config: CloudConfig, name: string, organizationId?: string): Promise<{ project: CloudProject; }>; export declare function listInstances(config: CloudConfig, projectId: string): Promise<{ instances: CloudInstance[]; }>; export declare function createInstance(config: CloudConfig, projectId: string, name: string): Promise<{ instance: CloudInstance; }>; export declare function createApiKey(config: CloudConfig, projectId: string, name?: string): Promise<{ key: CloudApiKey; token: string; }>; export declare function createOrganization(config: CloudConfig, name: string): Promise<{ organization: CloudOrganization; }>; export declare function listOrganizations(config: CloudConfig): Promise<{ organizations: CloudOrganization[]; }>; export declare function getOrganization(config: CloudConfig, orgId: string): Promise<{ organization: CloudOrganization; role: string; }>; export declare function listOrganizationMembers(config: CloudConfig, orgId: string): Promise<{ members: CloudOrganizationMember[]; }>; export declare function addOrganizationMember(config: CloudConfig, orgId: string, userId: string, role?: string): Promise<{ member: CloudOrganizationMember; }>; export declare function removeOrganizationMember(config: CloudConfig, orgId: string, userId: string): Promise<{ ok: boolean; }>; export declare function startCliAuth(config: CloudConfig): Promise<{ code: string; }>; export declare function pollCliAuth(config: CloudConfig, code: string): Promise<{ token: string; } | { status: string; }>; export type ResolvedInstance = { mcpUrl: string; projectId: string; projectSlug: string; instanceSlug: string; }; /** * Derive the REST base URL from an MCP gateway URL. * 'https://api.thingd.cloud/mcp/proj/inst' → 'https://api.thingd.cloud' * 'https://api.thingd.cloud' → 'https://api.thingd.cloud' (idempotent) */ export declare function deriveRestUrl(mcpUrl: string): string; /** * Fetch the first available cloud instance for the logged-in user. * Returns null if no projects or instances exist. */ export declare function resolveFirstInstance(config: CloudConfig): Promise; export declare function createUserToken(config: CloudConfig, name: string, projectAccess?: string): Promise<{ token: string; userToken: UserTokenDto; }>; export declare function listUserTokens(config: CloudConfig): Promise<{ userTokens: UserTokenDto[]; }>; export declare function revokeUserToken(config: CloudConfig, tokenId: string): Promise; export declare function updateUserToken(config: CloudConfig, tokenId: string, updates: { name?: string; projectAccess?: string; }): Promise<{ userToken: UserTokenDto; }>; /** * Extract the token ID from a full user token string (md_user__ → utk_). */ export declare function cleanupSessions(config: CloudConfig): Promise<{ removed: number; }>; export declare function parseUserTokenId(userToken: string): string | null; /** * Fetch all cloud instances across all projects for the logged-in user. * Returns an empty array if no projects or instances exist. */ export declare function resolveAllInstances(config: CloudConfig): Promise; //# sourceMappingURL=cloud-api.d.ts.map