import { Result } from "../utils/results.js"; import { KnownErrors } from "../known-errors.js"; import { MoneyAmount } from "../utils/currency-constants.js"; import { RestrictedReason, branchConfigSourceSchema } from "../schema-fields.js"; import { AccessToken, InternalSession, RefreshToken } from "../sessions.js"; import { AnalyticsQueryOptions, AnalyticsQueryResponse } from "./crud/analytics.js"; import { EmailOutboxCrud } from "./crud/email-outbox.js"; import { InternalEmailsCrud } from "./crud/emails.js"; import { InternalApiKeysCrud } from "./crud/internal-api-keys.js"; import { ProjectPermissionDefinitionsCrud } from "./crud/project-permissions.js"; import { ProjectsCrud } from "./crud/projects.js"; import { AdminGetSessionReplayAllEventsResponse, AdminGetSessionReplayChunkEventsResponse, AdminListSessionReplayChunksOptions, AdminListSessionReplayChunksResponse, AdminListSessionReplaysOptions, AdminListSessionReplaysResponse } from "./crud/session-replays.js"; import { SvixTokenCrud } from "./crud/svix-token.js"; import { TeamPermissionDefinitionsCrud } from "./crud/team-permissions.js"; import { Transaction, TransactionType } from "./crud/transactions.js"; import { ServerAuthApplicationOptions, StackServerInterface } from "./server-interface.js"; import * as yup from "yup"; //#region src/interface/admin-interface.d.ts type BranchConfigSourceApi = yup.InferType; type ChatContent = Array<{ type: "text"; text: string; } | { type: "tool-call"; toolName: string; toolCallId: string; args: any; argsText: string; result: any; }>; type AdminAuthApplicationOptions = ServerAuthApplicationOptions & ({ superSecretAdminKey: string; } | { projectOwnerSession: InternalSession | (() => Promise); }); type InternalApiKeyCreateCrudRequest = { has_publishable_client_key: boolean; has_secret_server_key: boolean; has_super_secret_admin_key: boolean; expires_at_millis: number; description: string; }; type InternalApiKeyCreateCrudResponse = InternalApiKeysCrud["Admin"]["Read"] & { publishable_client_key?: string; secret_server_key?: string; super_secret_admin_key?: string; }; declare class StackAdminInterface extends StackServerInterface { readonly options: AdminAuthApplicationOptions; constructor(options: AdminAuthApplicationOptions); sendAdminRequest(path: string, options: RequestInit, session: InternalSession | null, requestType?: "admin"): Promise; protected sendAdminRequestAndCatchKnownError(path: string, requestOptions: RequestInit, tokenStoreOrNull: InternalSession | null, errorsToCatch: readonly E[]): Promise>>; getProject(): Promise; updateProject(update: ProjectsCrud["Admin"]["Update"]): Promise; createInternalApiKey(options: InternalApiKeyCreateCrudRequest): Promise; listInternalApiKeys(): Promise; revokeInternalApiKeyById(id: string): Promise; getInternalApiKey(id: string, session: InternalSession): Promise; listInternalEmailTemplates(): Promise<{ id: string; display_name: string; theme_id?: string; tsx_source: string; }[]>; listInternalEmailDrafts(): Promise<{ id: string; display_name: string; theme_id?: string | undefined | false; tsx_source: string; sent_at_millis?: number | null; }[]>; createEmailDraft(options: { display_name?: string; theme_id?: string | false; tsx_source?: string; }): Promise<{ id: string; }>; updateEmailDraft(id: string, data: { display_name?: string; theme_id?: string | null | false; tsx_source?: string; sent_at_millis?: number | null; }): Promise; deleteEmailDraft(id: string): Promise; listEmailThemes(): Promise<{ id: string; display_name: string; }[]>; listTeamPermissionDefinitions(): Promise; createTeamPermissionDefinition(data: TeamPermissionDefinitionsCrud['Admin']['Create']): Promise; updateTeamPermissionDefinition(permissionId: string, data: TeamPermissionDefinitionsCrud['Admin']['Update']): Promise; deleteTeamPermissionDefinition(permissionId: string): Promise; listProjectPermissionDefinitions(): Promise; createProjectPermissionDefinition(data: ProjectPermissionDefinitionsCrud['Admin']['Create']): Promise; updateProjectPermissionDefinition(permissionId: string, data: ProjectPermissionDefinitionsCrud['Admin']['Update']): Promise; deleteProjectPermissionDefinition(permissionId: string): Promise; getSvixToken(): Promise; deleteProject(): Promise; getMetrics(includeAnonymous?: boolean): Promise; sendTestEmail(data: { recipient_email: string; email_config: { host: string; port: number; username: string; password: string; sender_email: string; sender_name: string; }; }): Promise<{ success: boolean; error_message?: string; }>; sendTestWebhook(data: { endpoint_id: string; }): Promise<{ success: boolean; error_message?: string; }>; listSentEmails(): Promise; setupManagedEmailProvider(data: { subdomain: string; sender_local_part: string; }): Promise<{ domain_id: string; subdomain: string; sender_local_part: string; name_server_records: string[]; status: "pending_dns" | "pending_verification" | "verified" | "applied" | "failed"; }>; checkManagedEmailStatus(data: { domain_id: string; subdomain: string; sender_local_part: string; }): Promise<{ status: "pending_dns" | "pending_verification" | "verified" | "applied" | "failed"; }>; listManagedEmailDomains(): Promise<{ items: Array<{ domain_id: string; subdomain: string; sender_local_part: string; status: "pending_dns" | "pending_verification" | "verified" | "applied" | "failed"; name_server_records: string[]; }>; }>; applyManagedEmailProvider(data: { domain_id: string; }): Promise<{ status: "applied"; }>; sendSignInInvitationEmail(email: string, callbackUrl: string): Promise; saveChatMessage(threadId: string, message: any): Promise; listChatMessages(threadId: string): Promise<{ messages: Array; }>; renderEmailPreview(options: { themeId?: string | null | false; themeTsxSource?: string; templateId?: string; templateTsxSource?: string; editableMarkers?: boolean; editableSource?: 'template' | 'theme' | 'both'; }): Promise<{ html: string; editable_regions?: Record; }>; rewriteTemplateSourceWithAI(templateTsxSource: string): Promise<{ tsx_source: string; }>; createEmailTheme(displayName: string): Promise<{ id: string; }>; getEmailTheme(id: string): Promise<{ display_name: string; tsx_source: string; }>; updateEmailTheme(id: string, tsxSource: string): Promise; deleteEmailTheme(id: string): Promise; updateEmailTemplate(id: string, tsxSource: string, themeId: string | null | false): Promise<{ rendered_html: string; }>; getConfig(): Promise<{ config_string: string; }>; getConfigOverride(level: "project" | "branch" | "environment"): Promise<{ config_string: string; }>; setConfigOverride(level: "project" | "branch" | "environment", configOverride: any, source?: BranchConfigSourceApi): Promise; updateConfigOverride(level: "project" | "branch" | "environment", configOverrideOverride: any): Promise; getPushedConfigSource(): Promise; unlinkPushedConfigSource(): Promise; resetConfigOverrideKeys(level: "branch" | "environment", keys: string[]): Promise; createEmailTemplate(displayName: string): Promise<{ id: string; }>; deleteEmailTemplate(id: string): Promise; setupPayments(): Promise<{ url: string; }>; getStripeAccountInfo(): Promise; getPaymentMethodConfigs(): Promise<{ configId: string; methods: Array<{ id: string; name: string; enabled: boolean; available: boolean; overridable: boolean; }>; } | null>; updatePaymentMethodConfigs(configId: string, updates: Record): Promise; createStripeWidgetAccountSession(): Promise<{ client_secret: string; }>; listTransactions(params?: { cursor?: string; limit?: number; type?: TransactionType; customerType?: 'user' | 'team' | 'custom'; }): Promise<{ transactions: Transaction[]; nextCursor: string | null; }>; listSessionReplays(params?: AdminListSessionReplaysOptions): Promise; listSessionReplayChunks(sessionReplayId: string, params?: AdminListSessionReplayChunksOptions): Promise; getSessionReplayChunkEvents(sessionReplayId: string, chunkId: string): Promise; getSessionReplayEvents(sessionReplayId: string, options?: { offset?: number; limit?: number; }): Promise; refundTransaction(options: { type: "subscription" | "one-time-purchase"; id: string; refundEntries: Array<{ entryIndex: number; quantity: number; amountUsd: MoneyAmount; }>; }): Promise<{ success: boolean; }>; previewAffectedUsersByOnboardingChange(onboarding: { require_email_verification?: boolean; }, limit?: number): Promise<{ affected_users: Array<{ id: string; display_name: string | null; primary_email: string | null; restricted_reason: RestrictedReason; }>; total_affected_count: number; }>; queryAnalytics(options: AnalyticsQueryOptions): Promise; listOutboxEmails(options?: { status?: string; simple_status?: string; limit?: number; cursor?: string; }): Promise; getOutboxEmail(id: string): Promise; updateOutboxEmail(id: string, data: EmailOutboxCrud["Server"]["Update"]): Promise; } //#endregion export { AdminAuthApplicationOptions, ChatContent, InternalApiKeyCreateCrudRequest, InternalApiKeyCreateCrudResponse, StackAdminInterface }; //# sourceMappingURL=admin-interface.d.ts.map