import { CplaceConfig } from './types.js'; export interface WorkspaceDetailed { id: string; name: string; displayName: string; rootPageId: string; isFavorite: boolean; totalPages: number; hide: boolean; url: string; creator?: string; modifier?: string; permissions: WorkspacePermissions; apps: WorkspaceApps; styling: WorkspaceStyling; typeDefinitions: WorkspaceTypeDefinitions; } export interface WorkspacePermissions { readers: string[]; writers: string[]; administrators: string[]; layouters: string[]; } export interface WorkspaceApps { installed: WorkspaceApp[]; configurations: any[]; } export interface WorkspaceApp { name: string; qualifiedName: string; } export interface WorkspaceStyling { iconName?: string; customCssClasses?: string; } export interface WorkspaceTypeDefinitions { count: number; types: WorkspaceTypeDefinition[]; } export interface WorkspaceTypeDefinition { internalName: string; localizedNames: Record; } export interface WorkspacesApiResponse { result: WorkspaceDetailed[]; } export interface PageDetailed { uid: string; name: string; url: string; type: PageType; workspace: PageWorkspace; parent?: PageParent; children: PageChild[]; creator: PageUser; modifier: PageUser; attributes: PageAttributes; documents?: any[]; } export interface PageType { internalName: string; localizedNames: Record; } export interface PageWorkspace { uid: string; name: string; } export interface PageParent { uid: string; name: string; type: PageType; } export interface PageChild { uid: string; name: string; type: PageType; } export interface PageUser { uid: string; name: string; } export interface PageAttributes { [key: string]: any; } export interface PageApiResponse { result: PageDetailed; } export interface PersonDetailed { uid: string; name: string; email: string; url: string; attributes: PersonAttributes; } export interface PersonAttributes { [key: string]: any; } export interface PersonApiResponse { result: PersonDetailed; } export interface SearchResult { results: PageDetailed[]; pagination: SearchPagination; searchStats: SearchStats; filterInfo?: SearchFilterInfo; summary: string; } export interface SearchPagination { total: number; limit: number; offset: number; hasMore: boolean; currentPage: number; totalPages: number; } export interface SearchStats { executionTimeMs: number; resultsCount: number; totalMatches: number; filtersApplied: number; } export interface SearchFilterInfo { appliedFilter: string; } export interface SearchApiResponse { results: PageDetailed[]; pagination: SearchPagination; searchStats: SearchStats; filterInfo?: SearchFilterInfo; summary: string; cplaceJson?: string; } export interface TypeDefinitionDetailed { uid: string; internalName: string; workspaceId: string; localizedNames: Record; localizedPlural: Record; attributesCount: number; attributes: TypeAttribute[]; permissions: TypePermissions; apps: Record; } export interface TypeAttribute { name: string; localizedName: Record; multiplicity: 'exactlyOne' | 'maximalOne' | 'arbitrary' | 'atLeastOne'; constraint: any; } export interface TypePermissions { readers: string[]; readersAreDefault: boolean; writers: string[]; writersAreDefault: boolean; } export interface TypeDefinitionApiResponse { result: TypeDefinitionDetailed; } export interface VersionApiResponse { apiVersion: string; platformVersion?: string; platformBuildIdentifier?: string; } export interface ApiEndpoints { 'json/workspaces': WorkspaceDetailed[]; 'json/page': PageDetailed; 'json/person': PersonDetailed; 'json/search': SearchApiResponse; 'json/type-definition': TypeDefinitionDetailed; 'json/fulltext-search': SearchApiResponse; 'json/version': VersionApiResponse; } export declare const DEFAULT_URL_PREFIX = "cplace-api/cf.cplace.citizenAi/mcp"; export declare const MAX_ERROR_BODY_CHARS = 500; export declare function formatErrorBodyTail(body: unknown): string; export declare class CplaceApiClient { private config; private urlPrefix; constructor(config: CplaceConfig, urlPrefix?: string); private buildBaseHeaders; private buildHeaders; private buildUrl; private request; makeApiRequest(endpoint: T, method?: 'GET' | 'POST' | 'PATCH' | 'DELETE', params?: Record, data?: any): Promise; makeApiRequest(endpoint: string, method?: 'GET' | 'POST' | 'PATCH' | 'DELETE', params?: Record, data?: any): Promise; private unwrapEnvelope; makeRawApiRequest(endpoint: string, method?: 'GET' | 'POST' | 'PATCH' | 'DELETE', params?: Record, data?: any): Promise; makeBinaryApiRequest(endpoint: string, params?: Record): Promise; makeMultipartApiRequest(endpoint: string, formData: FormData): Promise; } export interface BinaryApiResponse { data: Buffer; contentType: string; fileName?: string; fileSize: number; } export declare function parseContentDispositionFileName(header: string | null): string | undefined; //# sourceMappingURL=api.d.ts.map