import { AnalyticsClickmapOptions, AnalyticsClickmapResponse, AnalyticsClickmapTokenResponse } from "@hexclave/shared/dist/interface/admin-metrics"; import { Result } from "@hexclave/shared/dist/utils/results"; import { AsyncStoreProperty, EmailConfig } from "../../common.js"; import { InternalApiKey, InternalApiKeyCreateOptions, InternalApiKeyFirstView } from "../../internal-api-keys/index.js"; import { AdminProjectPermission, AdminProjectPermissionDefinition, AdminProjectPermissionDefinitionCreateOptions, AdminProjectPermissionDefinitionUpdateOptions, AdminTeamPermission, AdminTeamPermissionDefinition, AdminTeamPermissionDefinitionCreateOptions, AdminTeamPermissionDefinitionUpdateOptions } from "../../permissions/index.js"; import { AdminProject } from "../../projects/index.js"; import { AdminWorkflow, AdminWorkflow as AdminWorkflow$1, AdminWorkflowDivergenceDiagnostic, AdminWorkflowRun, AdminWorkflowRun as AdminWorkflowRun$1, AdminWorkflowRunDetails, AdminWorkflowRunDetails as AdminWorkflowRunDetails$1, AdminWorkflowRunState, AdminWorkflowRunsFilter, AdminWorkflowRunsFilter as AdminWorkflowRunsFilter$1, AdminWorkflowStep, AdminWorkflowStepAttempt, AdminWorkflowSyncResult, AdminWorkflowSyncResult as AdminWorkflowSyncResult$1, AdminWorkflowTrigger, AdminWorkflowUpgradeResult, AdminWorkflowUpgradeResult as AdminWorkflowUpgradeResult$1, AdminWorkflowVersion, AdminWorkflowVersion as AdminWorkflowVersion$1 } from "../../workflows.js"; import { InternalSession } from "@hexclave/shared/dist/sessions"; import { AdminGetSessionReplayChunkEventsResponse } from "@hexclave/shared/dist/interface/crud/session-replays"; import { Transaction, TransactionType } from "@hexclave/shared/dist/interface/crud/transactions"; import { MoneyAmount } from "@hexclave/shared/dist/utils/currency-constants"; import { PlanUsage } from "../../plan-usage/index.js"; import { AdminSessionReplay, AdminSessionReplay as AdminSessionReplay$1, AdminSessionReplayChunk, ListSessionReplayChunksOptions, ListSessionReplayChunksOptions as ListSessionReplayChunksOptions$1, ListSessionReplayChunksResult, ListSessionReplayChunksResult as ListSessionReplayChunksResult$1, ListSessionReplaysOptions, ListSessionReplaysOptions as ListSessionReplaysOptions$1, ListSessionReplaysResult, ListSessionReplaysResult as ListSessionReplaysResult$1, SessionReplayAllEventsResult, SessionReplayAllEventsResult as SessionReplayAllEventsResult$1 } from "../../session-replays/index.js"; import { AdminEmailOutbox, AdminSentEmail } from "../../email/index.js"; import { StackServerApp, StackServerAppConstructorOptions } from "./server-app.js"; //#region src/lib/hexclave-app/apps/interfaces/admin-app.d.ts type EmailOutboxListOptions = { status?: string; simpleStatus?: string; userId?: string; limit?: number; cursor?: string; }; type EmailOutboxListResult = { items: AdminEmailOutbox[]; nextCursor: string | null; }; type EmailOutboxUpdateOptions = { isPaused?: boolean; scheduledAtMillis?: number; cancel?: boolean; tsxSource?: string; themeId?: string | null; }; type ManagedEmailProviderSetupResult = { domainId: string; subdomain: string; senderLocalPart: string; nameServerRecords: string[]; status: ManagedEmailProviderStatus["status"]; }; type ManagedEmailProviderStatus = { status: "pending_dns" | "pending_verification" | "verified" | "applied" | "failed"; }; type ManagedEmailProviderListItem = { domainId: string; subdomain: string; senderLocalPart: string; status: ManagedEmailProviderStatus["status"]; nameServerRecords: string[]; }; /** @deprecated Use `HexclaveAdminAppConstructorOptions` from the `@hexclave/*` package instead — same symbol, new brand name. See https://docs.hexclave.com/migration. */ type StackAdminAppConstructorOptions = (StackServerAppConstructorOptions & { superSecretAdminKey?: string; projectOwnerSession?: InternalSession | (() => Promise); }); /** @deprecated Use `HexclaveAdminApp` from the `@hexclave/*` package instead — same symbol, new brand name. See https://docs.hexclave.com/migration. */ type StackAdminApp = (AsyncStoreProperty<"project", [], AdminProject, false> & AsyncStoreProperty<"planUsage", [], PlanUsage, false> & AsyncStoreProperty<"internalApiKeys", [], InternalApiKey[], true> & AsyncStoreProperty<"teamPermissionDefinitions", [], AdminTeamPermissionDefinition[], true> & AsyncStoreProperty<"projectPermissionDefinitions", [], AdminProjectPermissionDefinition[], true> & AsyncStoreProperty<"emailThemes", [], { id: string; displayName: string; }[], true> & AsyncStoreProperty<"emailPreview", [{ themeId?: string | null | false; themeTsxSource?: string; templateId?: string; templateTsxSource?: string; }], string, false> & AsyncStoreProperty<"emailTemplates", [], { id: string; displayName: string; themeId?: string; tsxSource: string; }[], true> & AsyncStoreProperty<"emailDrafts", [], { id: string; displayName: string; themeId: string | undefined | false; tsxSource: string; sentAt: Date | null; }[], true> & AsyncStoreProperty<"workflows", [], AdminWorkflow$1[], true> & AsyncStoreProperty<"stripeAccountInfo", [], { account_id: string; charges_enabled: boolean; details_submitted: boolean; payouts_enabled: boolean; } | null, false> & AsyncStoreProperty<"transactions", [{ cursor?: string; limit?: number; type?: TransactionType; customerType?: 'user' | 'team' | 'custom'; customerId?: string; }], { transactions: Transaction[]; nextCursor: string | null; }, true> & { createInternalApiKey(options: InternalApiKeyCreateOptions): Promise; createTeamPermissionDefinition(data: AdminTeamPermissionDefinitionCreateOptions): Promise; updateTeamPermissionDefinition(permissionId: string, data: AdminTeamPermissionDefinitionUpdateOptions): Promise; deleteTeamPermissionDefinition(permissionId: string): Promise; /** * @param options.query Free-text search; matches against permission ID and description. */ listTeamPermissionDefinitionsPaginated(options: { limit: number; cursor?: string; query?: string; }): Promise<{ items: AdminTeamPermissionDefinition[]; nextCursor: string | null; }>; createProjectPermissionDefinition(data: AdminProjectPermissionDefinitionCreateOptions): Promise; updateProjectPermissionDefinition(permissionId: string, data: AdminProjectPermissionDefinitionUpdateOptions): Promise; deleteProjectPermissionDefinition(permissionId: string): Promise; sendTestEmail(options: { recipientEmail: string; emailConfig: EmailConfig; }): Promise>; sendTestWebhook(options: { endpointId: string; }): Promise>; sendSignInInvitationEmail(email: string, callbackUrl: string): Promise; listSentEmails(): Promise; setupManagedEmailProvider(options: { subdomain: string; senderLocalPart: string; }): Promise; checkManagedEmailStatus(options: { domainId: string; subdomain: string; senderLocalPart: string; }): Promise; listManagedEmailDomains(): Promise; applyManagedEmailProvider(options: { domainId: string; }): Promise<{ status: "applied"; }>; deleteManagedEmailDomain(options: { resendDomainId: string; }): Promise<{ status: "deleted"; }>; createEmailTheme(displayName: string): Promise<{ id: string; }>; updateEmailTheme(id: string, tsxSource: string): Promise; deleteEmailTheme(id: string): Promise; saveChatMessage(threadId: string, message: any): Promise; listChatMessages(threadId: string): Promise<{ messages: Array; }>; rewriteTemplateSourceWithAI(templateTsxSource: string): Promise<{ tsxSource: string; }>; updateEmailTemplate(id: string, tsxSource: string, themeId: string | null | false): Promise<{ renderedHtml: string; }>; createEmailTemplate(displayName: string): Promise<{ id: string; }>; deleteEmailTemplate(id: string): Promise; createWorkflow(options: { id: string; displayName?: string; source: string; }): Promise; updateWorkflowSource(workflowId: string, source: string): Promise; deleteWorkflow(workflowId: string): Promise; /** Pauses/resumes run creation. In-flight runs are unaffected. */ setWorkflowPaused(workflowId: string, isPaused: boolean): Promise; listWorkflowVersions(workflowId: string): Promise; listWorkflowRuns: { (workflowId: string, filter: AdminWorkflowRunsFilter$1 & { includeState: true; }): Promise<{ runs: AdminWorkflowRunDetails$1[]; nextCursor: string | null; }>; (workflowId: string, filter?: AdminWorkflowRunsFilter$1): Promise<{ runs: AdminWorkflowRun$1[]; nextCursor: string | null; }>; }; getWorkflowRun(runId: string): Promise; cancelWorkflowRuns(workflowId: string, filter?: { runKey?: string; runId?: string; state?: "queued" | "running" | "sleeping"; version?: number; }): Promise<{ canceledCount: number; }>; upgradeWorkflowRuns(workflowId: string, options: { toVersion: number; runKey?: string; fromVersion?: number; }): Promise; retryWorkflowRun(runId: string): Promise; sendWorkflowEvent(name: string, data?: unknown): Promise<{ eventId: string; }>; setupPayments(): Promise<{ url: string; }>; createStripeWidgetAccountSession(): Promise<{ client_secret: string; }>; getPaymentMethodConfigs(): Promise<{ configId: string; methods: Array<{ id: string; name: string; enabled: boolean; available: boolean; overridable: boolean; }>; } | null>; updatePaymentMethodConfigs(configId: string, updates: Record): Promise; createEmailDraft(options: { displayName: string; themeId?: string | undefined | false; tsxSource?: string; }): Promise<{ id: string; }>; updateEmailDraft(id: string, data: { displayName?: string; themeId?: string | undefined | false; tsxSource?: string; }): Promise; deleteEmailDraft(id: string): Promise; refreshEmailDrafts(): Promise; createItemQuantityChange(options: ({ userId: string; itemId: string; quantity: number; expiresAt?: string; description?: string; } | { teamId: string; itemId: string; quantity: number; expiresAt?: string; description?: string; } | { customCustomerId: string; itemId: string; quantity: number; expiresAt?: string; description?: string; })): Promise; refundTransaction(options: { type: "subscription" | "one-time-purchase"; id: string; invoiceId?: string; amountUsd: MoneyAmount; endAction?: "now" | "at-period-end"; }): Promise<{ refundTransactionId: string; }>; getAnalyticsClickmap(options: AnalyticsClickmapOptions): Promise; createAnalyticsClickmapToken(options: { origin: string; }): Promise; listSessionReplays(options?: ListSessionReplaysOptions$1): Promise; getSessionReplay(sessionReplayId: string): Promise; listSessionReplayChunks(sessionReplayId: string, options?: ListSessionReplayChunksOptions$1): Promise; getSessionReplayChunkEvents(sessionReplayId: string, chunkId: string): Promise; getSessionReplayEvents(sessionReplayId: string, options?: { offset?: number; limit?: number; }): Promise; listOutboxEmails(options?: EmailOutboxListOptions): Promise; getOutboxEmail(id: string): Promise; updateOutboxEmail(id: string, options: EmailOutboxUpdateOptions): Promise; pauseOutboxEmail(id: string): Promise; unpauseOutboxEmail(id: string): Promise; cancelOutboxEmail(id: string): Promise; } & StackServerApp); /** @deprecated Use `HexclaveAdminAppConstructor` from the `@hexclave/*` package instead — same symbol, new brand name. See https://docs.hexclave.com/migration. */ type StackAdminAppConstructor = { new (options: StackAdminAppConstructorOptions): StackAdminApp; new (options: StackAdminAppConstructorOptions): StackAdminApp; }; type HexclaveAdminAppConstructorOptions = StackAdminAppConstructorOptions; type HexclaveAdminApp = StackAdminApp; type HexclaveAdminAppConstructor = StackAdminAppConstructor; declare const HexclaveAdminApp: HexclaveAdminAppConstructor; /** @deprecated Use `HexclaveAdminApp` from the `@hexclave/*` package instead — same symbol, new brand name. See https://docs.hexclave.com/migration. */ declare const StackAdminApp: StackAdminAppConstructor; //#endregion export { type AdminSessionReplay, type AdminSessionReplayChunk, type AdminWorkflow, type AdminWorkflowDivergenceDiagnostic, type AdminWorkflowRun, type AdminWorkflowRunDetails, type AdminWorkflowRunState, type AdminWorkflowRunsFilter, type AdminWorkflowStep, type AdminWorkflowStepAttempt, type AdminWorkflowSyncResult, type AdminWorkflowTrigger, type AdminWorkflowUpgradeResult, type AdminWorkflowVersion, EmailOutboxListOptions, EmailOutboxListResult, EmailOutboxUpdateOptions, HexclaveAdminApp, HexclaveAdminAppConstructor, HexclaveAdminAppConstructorOptions, type ListSessionReplayChunksOptions, type ListSessionReplayChunksResult, type ListSessionReplaysOptions, type ListSessionReplaysResult, ManagedEmailProviderListItem, ManagedEmailProviderSetupResult, ManagedEmailProviderStatus, type SessionReplayAllEventsResult, StackAdminApp, StackAdminAppConstructor, StackAdminAppConstructorOptions }; //# sourceMappingURL=admin-app.d.ts.map