Files
puter/src/puter-js/index.d.ts
T
Juan Castro 5e376bc0c8 feat(puter-js): puter.notifications
An app notifies the user it runs for, reads its own notifications back
and follows new ones, hears clicks on them from the desktop, and asks
for or checks the notifications:push grant. Puter's own apps also
register, list and remove the user's devices.
2026-10-26 16:36:42 -04:00

355 lines
9.2 KiB
TypeScript

// The published type surface of puter.js.
//
// This is the only hand-written declaration file in the package: it names what
// the SDK exports and nothing more. Every type it re-exports is generated from
// the JSDoc in `src/` by `npm run build:types` — edit the JSDoc, not `types/`.
import type { Puter } from './types/index.js';
export type { Puter };
export { puter, default } from './types/index.js';
declare global {
interface Window {
puter: Puter;
}
}
// -- Shared --
export type {
APILoggingConfig,
ListPage,
ListPaginationOptions,
ListStreamOptions,
PaginatedResult,
PaginationOptions,
PuterEnvironment,
RequestCallbacks,
ToolSchema,
UpgradeReason,
UpgradeRequestDetails,
} from './types/lib/types.js';
export type { default as APICallLogger } from './types/lib/APICallLogger.js';
// -- puter.ai --
export type {
AIMessageContent,
ChatMessage,
ChatOptions,
ChatResponse,
ChatResponseChunk,
ChatResponseStream,
ImageContent,
Img2TxtOptions,
ListTTSEnginesOptions,
ListTTSVoicesOptions,
OcrAnnotationFormat,
Speech2SpeechOptions,
Speech2TxtOptions,
Speech2TxtResult,
Speech2TxtWord,
StreamingChatOptions,
TextFormatSpeech2TxtOptions,
Tool,
ToolCall,
TTSEngine,
TTSVoice,
Txt2ImgOptions,
Txt2SpeechOptions,
Txt2VidOptions,
} from './types/modules/ai/types.js';
export type { Txt2Speech } from './types/modules/ai/index.js';
// -- puter.apps --
export type {
App,
AppListOptions,
AppUser,
CheckAppNameResult,
CreateAppOptions,
CreateAppResult,
GetUsersOptions,
UpdateAppAttributes,
} from './types/modules/apps/types.js';
// -- puter.auth --
export type {
AllowanceInfo,
APIUsage,
AppUsage,
DetailedAppUsage,
MonthlyUsage,
SignInResult,
User,
UserProfile,
UserProfilePatch,
} from './types/modules/Auth.js';
// -- puter.debug --
export type { Debug } from './types/modules/Debug.js';
// -- puter.drivers --
export type { Driver } from './types/modules/Drivers.js';
// -- puter.email --
export type {
EmailAttachment,
EmailSendOptions,
EmailSendResult,
} from './types/modules/Email/Email.js';
export type {
EmailAddress,
EmailFolder,
EmailGetOptions,
EmailHeader,
EmailListOptions,
EmailListStreamOptions,
EmailMessage,
EmailMessageAttachment,
EmailSummary,
} from './types/modules/Email/types.js';
// -- puter.events --
export type {
DestroyedEventsWorker,
EventAnchor,
EventDelivery,
EventFetchOptions,
EventFetchPage,
EventGapMarker,
EventHandler,
EventsWorkerPage,
EventsWorkerSummary,
EventsWorkersListOptions,
HandlerOptions,
HandlerPublication,
HandlerSummary,
OnLocalOptions,
OnPersistentOptions,
PersistentSubscription,
PublishedHandler,
PuterEvent,
PuterKvEvent,
PuterNotifEvent,
} from './types/modules/events/types.js';
export type { EventSubscription } from './types/modules/events/lib/subscription.js';
export type { EventHandlers } from './types/modules/events/lib/handlers.js';
export type { EventsWorkers } from './types/modules/events/lib/workers.js';
// -- puter.fs --
export type {
CopyOptions,
DeleteOptions,
FSItemRead,
FSItemWithShares,
GetShareLinkOptions,
GetSharesOptions,
ListSharedByMeOptions,
ListSharedOptions,
MkdirOptions,
MoveOptions,
ReadOptions,
ReaddirOptions,
RenameOptions,
Share,
ShareMode,
ShareOptions,
SharePage,
ShareRecipient,
SignResult,
SpaceInfo,
StatOptions,
UnshareOptions,
UploadBatchError,
UploadItems,
UploadOperationResult,
UploadOptions,
ThumbnailGenerator,
ThumbnailGeneratorContext,
WriteOptions,
} from './types/modules/FileSystem/types.js';
export type {
FileSignatureInfo,
FSItem,
InternalFSProperties,
} from './types/modules/FSItem.js';
// -- puter.hosting --
export type { Subdomain } from './types/modules/hosting/types.js';
// -- puter.kv --
export type {
KVAddPath,
KVIncrementPath,
KVListOptions,
KVListPage,
KVListPaginationOptions,
KVListStreamOptions,
KVOptConfig,
KVPair,
KVScalar,
KVSetBatch,
KVSetItem,
KVSetObject,
KVShare,
KVShareAccess,
KVSharedByMe,
KVSharedByMeListOptions,
KVSharedWithMe,
KVShareListOptions,
KVShareManyFailed,
KVShareManyItem,
KVShareManyOptions,
KVShareManyShared,
KVShareOptions,
KVShareRecipient,
KVShareRevokedBy,
KVShareState,
KVUnshareResult,
KVUpdateObject,
KVUpdatePath,
KVValue,
} from './types/modules/kv/types.js';
// -- puter.net --
export type { Networking, SocketEvent } from './types/modules/networking/types.js';
export type { PSocket, PTLSSocket } from './types/modules/networking/PSocket.js';
// -- puter.notifications --
export type {
AppNotification,
NotificationClick,
NotificationHandler,
NotificationInput,
NotificationListener,
NotificationSender,
OnNotificationOptions,
PushDevice,
PushDeviceRegistration,
PushPlatform,
} from './types/modules/notifications/types.js';
// -- puter.os --
// -- puter.peer --
export type {
PuterPeerDescription,
PuterPeerIceCandidate,
PuterPeerMessage,
PuterPeerOptions,
PuterPeerUser,
} from './types/modules/Peer/types.js';
export type { PuterPeerConnection } from './types/modules/Peer/PuterPeerConnection.js';
export type { PuterPeerServer } from './types/modules/Peer/PuterPeerServer.js';
export type {
PuterPeerEncoding,
PuterPeerPublishOptions,
} from './types/modules/Peer/tracks.js';
export type {
PuterPeerConnectionCloseEvent,
PuterPeerConnectionErrorEvent,
PuterPeerConnectionEventMap,
PuterPeerConnectionMessageEvent,
PuterPeerConnectionOpenEvent,
PuterPeerLinkState,
PuterPeerLinkStateEvent,
PuterPeerMediaEndedEvent,
PuterPeerMediaEvent,
PuterPeerServerConnectionEvent,
PuterPeerServerEventMap,
PuterPeerServerReconnectEvent,
} from './types/modules/Peer/events.js';
// -- puter.perms --
export type {
AppDataClass,
AppDataFsScope,
AppDataKvScope,
AppDataScopePair,
AppDataScopes,
AppDataStore,
PermsAccess,
PermsAccessRequest,
PermsAppDataRequest,
PermsAppRootDirRequest,
PermsBatchEntry,
PermsCreateKind,
PermsFolderName,
PermsFolderRequest,
PermsFsRequest,
PermsKvShareAccess,
PermsKvShareRequest,
PermsPermissionRequest,
PermsRequestDetails,
PermsResource,
} from './types/modules/perms/types.js';
// -- puter.teams --
export type {
CreateMemberOptions,
CreateTeamOptions,
Team,
TeamAuditEntry,
TeamMember,
TemporaryCredential,
UpdateTeamAttributes,
} from './types/modules/teams/types.js';
// -- puter.ui --
export type { AppConnection } from './types/modules/UI.js';
export type {
AlertButton,
AlertOptions,
AppConnectionCloseEvent,
CancelAwarePromise,
ColorPickerOptions,
ConnectionEvent,
ContextMenuItem,
ContextMenuOptions,
DirectoryPickerOptions,
FilePickerOptions,
FontPickerOptions,
LaunchAppOptions,
LaunchAppResult,
MenuItem,
MenubarOptions,
NotificationOptions,
PromptOptions,
ThemeData,
WindowHandle,
WindowIdentifier,
WindowOptions,
} from './types/modules/UI.js';
// -- puter.util --
export type { default as Util, UtilRPC } from './types/modules/Util.js';
// -- puter.workers --
export type {
WorkerDeployment,
WorkerInfo,
} from './types/modules/Workers.js';
// -- Module instance types --
//
// Each `puter.<module>` handle. Named here rather than re-exported, because the
// generated modules export a constructor value plus its constructor type, and
// what a consumer annotates with is the instance.
export type AI = InstanceType<import('./types/modules/ai/index.js').AIConstructor>;
export type Apps = InstanceType<import('./types/modules/apps/index.js').AppsConstructor>;
export type Auth = InstanceType<import('./types/modules/Auth.js').AuthConstructor>;
export type Drivers = InstanceType<import('./types/modules/Drivers.js').DriversConstructor>;
export type Email = InstanceType<import('./types/modules/Email/Email.js').EmailConstructor>;
export type Events = InstanceType<import('./types/modules/events/index.js').EventsConstructor>;
export type FS = InstanceType<import('./types/modules/FileSystem/index.js').FSConstructor>;
export type Hosting = InstanceType<import('./types/modules/hosting/index.js').HostingConstructor>;
export type KV = InstanceType<import('./types/modules/kv/index.js').KVConstructor>;
export type Notifications = InstanceType<import('./types/modules/notifications/index.js').NotificationsConstructor>;
export type OS = InstanceType<import('./types/modules/os/index.js').OSConstructor>;
export type Peer = InstanceType<import('./types/modules/Peer/index.js').PeerConstructor>;
export type Perms = InstanceType<import('./types/modules/perms/index.js').PermsConstructor>;
export type Teams = InstanceType<import('./types/modules/teams/index.js').TeamsConstructor>;
export type UI = InstanceType<import('./types/modules/UI.js').UIConstructor>;
export type WorkersHandler = InstanceType<import('./types/modules/Workers.js').WorkersConstructor>;