import { type GitHubInstallationBindingProof } from "@opengeni/contracts"; import { type ApiRouteDeps } from "@opengeni/core"; import { type Database } from "@opengeni/db"; export declare function requireGitHubLensConnect(deps: ApiRouteDeps, workspaceId: string): Promise<{ installation: { skillWrites?: { operationId: string; skillId: string; revisionId: string; outcome: "applied" | "pending" | "preserved"; decision?: "rejected" | undefined; pendingReason?: "approval" | "source_finalization" | undefined; skillReview?: { sourceOperationId: string; skillId: string; revisionId: string; expectedRevisionId: string | null; expectedScopeVersion: number; } | undefined; replayed: boolean; }[] | undefined; skillPublications?: { operationId: string; skillId: string; revisionId: string; outcome: "applied" | "pending" | "preserved"; decision?: "rejected" | undefined; pendingReason?: "approval" | "source_finalization" | undefined; skillReview?: { sourceOperationId: string; skillId: string; revisionId: string; expectedRevisionId: string | null; expectedScopeVersion: number; } | undefined; replayed: boolean; sourceOperationId: string; activationEventId: string | null; }[] | undefined; skillReleases?: { skillId: string; revisionId: string | null; disposition: "deactivated" | "inactive" | "preserved"; eventId: string | null; warning: string | null; }[] | undefined; id: string; accountId: string; workspaceId: string; packId: string; status: "active" | "disabled" | "installing" | "needs_attention"; version: number; manifestSnapshot: Record | null; manifestDigest: string | null; selectedRigId: string | null; installedBySubjectId: string | null; metadata: Record; enabledAt: string; updatedAt: string; }; template: { id: string; name: string; description: string; adapterId: string; eventTypes: string[]; sessionTemplate: { bundledSkillIds?: ("builtin:document-parsing" | "builtin:opengeni-documents" | "builtin:opengeni-presentations" | "builtin:opengeni-projects" | "builtin:opengeni-sites" | "builtin:opengeni-skills" | "builtin:opengeni-spreadsheets" | "builtin:opengeni-video-generation" | "builtin:opengeni-visualize")[] | undefined; prompt: string; instructions: string | null; resources: ({ kind: "repository"; uri: string; ref: string; expectedCommitSha?: string | undefined; mountPath?: string | undefined; subpath?: string | undefined; provider?: "azure_devops" | "github" | "gitlab" | undefined; connectionType?: "github_personal" | undefined; credentialBindingId?: string | undefined; access?: "read" | "write" | undefined; repositoryId?: string | number | undefined; installationId?: string | number | undefined; projectId?: string | number | undefined; connectionId?: string | undefined; githubInstallationId?: number | undefined; githubRepositoryId?: number | undefined; } | { kind: "file"; fileId: string; mountPath?: string | undefined; })[]; skills: { name: string; description: string; files: { path: string; content: string; }[]; }[]; tools: { kind: "mcp"; id: string; eager?: boolean | undefined; optional?: boolean | undefined; }[]; firstPartyMcpTools: ("artifacts_archive" | "artifacts_create" | "artifacts_get_source" | "artifacts_list" | "artifacts_prepare_upload" | "artifacts_publish" | "artifacts_restore" | "artifacts_rollback" | "atlassian_get" | "atlassian_search" | "atlassian_sources_list" | "browser_act" | "browser_auth" | "browser_clipboard" | "browser_debug" | "browser_identity" | "browser_lifecycle" | "browser_observe" | "browser_open" | "browser_publish" | "browser_tabs" | "capability_authorization_request" | "capability_catalog_search" | "command_read" | "command_wait" | "company_profile_confirm" | "company_profile_propose" | "computer_act" | "computer_clipboard" | "computer_lifecycle" | "computer_observe" | "computer_open" | "computer_targets" | "connected_machine_remove" | "editable_artifact_apply" | "editable_artifact_create" | "editable_artifact_export" | "editable_artifact_export_status" | "editable_artifact_get" | "editable_artifact_import" | "editable_artifact_inspect" | "editable_artifact_list" | "environment_list" | "environment_set_variable" | "fiken_bank_accounts_list" | "fiken_companies_list" | "fiken_contact_create" | "fiken_contacts_list" | "fiken_invoice_draft_create" | "fiken_invoice_get" | "fiken_invoices_list" | "fiken_products_list" | "fiken_purchases_list" | "fiken_sales_list" | "github_connect_link" | "github_repositories_list" | "goal_complete" | "goal_pause" | "goal_progress" | "goal_resume" | "goal_set" | "goal_update" | "instruction_policy_get" | "instruction_policy_propose" | "instruction_policy_save" | "interaction_discover" | "interaction_request_human" | "knowledge_archive" | "knowledge_browse" | "knowledge_correct" | "knowledge_get" | "knowledge_propose" | "knowledge_retain_file" | "knowledge_retain_message" | "knowledge_save" | "knowledge_search" | "memory_correct" | "memory_save" | "memory_search" | "preference_propose" | "preference_registry_get" | "preference_registry_summary" | "project_create" | "project_delete" | "project_get" | "project_list" | "project_reorder" | "project_update" | "reddit_accounts_list" | "reddit_mentions_live" | "reddit_post_reply" | "reddit_posts_sync" | "reddit_search_live" | "reddit_thread_fetch" | "remember" | "remember_confirm" | "rig_get" | "rig_list" | "rig_promote" | "rig_propose_change" | "rig_verify" | "run_on" | "sandbox_attach" | "sandbox_file_publish" | "sandbox_provision" | "sandbox_swap" | "sandboxes_list" | "scheduled_task_runs_list" | "scheduled_tasks_create" | "scheduled_tasks_delete" | "scheduled_tasks_get" | "scheduled_tasks_list" | "scheduled_tasks_pause" | "scheduled_tasks_resume" | "scheduled_tasks_trigger" | "scheduled_tasks_update" | "session_create" | "session_events" | "session_get" | "session_human_input_respond" | "session_pause" | "session_resume" | "session_send_message" | "session_set_project" | "session_steer" | "session_wait" | "sessions_list" | "set_other_session_title" | "set_session_title" | "slack_bot_channel_history" | "slack_bot_delete_message" | "slack_bot_file_content" | "slack_bot_file_info" | "slack_bot_list_channels" | "slack_bot_list_files" | "slack_bot_list_users" | "slack_bot_post_message" | "slack_bot_search" | "slack_bot_thread_replies" | "social_connections_list" | "social_daily_analysis_context" | "social_mentions_live" | "social_post_reply" | "social_posts_recent" | "social_posts_sync" | "social_search_live" | "social_thread_fetch" | "task_note_archive" | "task_note_promote_instruction_policy" | "task_note_promote_knowledge" | "task_note_promote_preference" | "task_note_replace" | "task_note_save" | "task_notes_list" | "variable_set_get_variable" | "variable_set_list" | "variable_set_set_variable" | "wait_for_input" | "work_claim_release" | "work_claim_upsert" | "x_accounts_list" | "x_mentions_live" | "x_post_reply" | "x_posts_sync" | "x_search_live" | "x_thread_fetch")[]; firstPartyMcpPermissions: ("account:admin" | "account:read" | "api_keys:manage" | "artifacts:publish" | "artifacts:read" | "billing:manage" | "billing:read" | "capabilities:manage" | "codemode:call" | "connections:read" | "connections:write" | "documents:manage" | "documents:search" | "enrollments:manage" | "enrollments:read" | "environments:manage" | "environments:use" | "files:read" | "files:upload" | "files:write" | "github:manage" | "github:use" | "goals:manage" | "mcp_servers:attach" | "members:manage" | "rigs:manage" | "rigs:use" | "scheduled_tasks:manage" | "scheduled_tasks:run" | "secrets:list" | "secrets:read" | "secrets:write" | "sessions:control" | "sessions:create" | "sessions:read" | "stream:acknowledge" | "stream:control" | "stream:view" | "terminal:attach" | "variable-sets:attach" | "variable-sets:list" | "variable-sets:manage" | "variable-sets:read" | "variable-sets:use" | "variable-sets:write" | "workspace:admin" | "workspace:create" | "workspace:read")[]; model: string | null; reasoningEffort: "high" | "low" | "max" | "medium" | "minimal" | "none" | "xhigh" | null; sandboxBackend: "blaxel" | "cloudflare" | "daytona" | "docker" | "e2b" | "local" | "modal" | "none" | "opensandbox" | "runloop" | "selfhosted" | "vercel" | null; policyRole: string | null; metadata: Record; }; configuration: Record; connectionRequirement: string | null; }; }>; /** Separate Lens registration/source/automation domain, not a repository-access * binding. Invoked inside the Connect receipt's authorized transaction. */ export declare function commitGitHubLensConnect(deps: ApiRouteDeps, tx: Database, input: { accountId: string; workspaceId: string; subjectId: string; installationId: number; proof: GitHubInstallationBindingProof; checkedAt: Date; expiresAt: Date; nonce: string; }): Promise<{ id: string; sourceId: string; accountId: string; workspaceId: string; name: string; provider: "azure_devops" | "github" | "gitlab"; providerBaseUrl: string; appId: string | null; installationId: string | null; providerAccountLogin: string | null; providerAccountType: "Organization" | "User" | null; credentialKind: "github_app" | "managed_github_app" | "provider_token"; hasCredential: boolean; accessTokenExpiresAt: string | null; webhookAuthKind: "basic" | "hmac_sha256" | "shared_token"; hasWebhookSecret: boolean; webhookUsername: string | null; webhookPath: string; status: "active" | "disabled"; createdBySubjectId: string; createdAt: string; updatedAt: string; }>;