type TerraformResourceImportBase = { id: string; terraformId: string; }; export type TerraformFolderImport = TerraformResourceImportBase & { resourceType: "retool_folder"; folder: APIFolder; }; export type TerraformGroupImport = TerraformResourceImportBase & { resourceType: "retool_group"; group: APIGroup; }; export type TerraformPermissionsImport = TerraformResourceImportBase & { resourceType: "retool_permissions"; groupId: string; }; export type TerraformSSOImport = TerraformResourceImportBase & { resourceType: "retool_sso"; ssoConfig: APISSOConfig; }; export type TerraformSourceControlImport = TerraformResourceImportBase & { resourceType: "retool_source_control"; sourceControlConfig: APISourceControlConfig; }; export type TerraformSourceControlSettingsImport = TerraformResourceImportBase & { resourceType: "retool_source_control_settings"; settings: APISourceControlSettings; }; export type TerraformSpaceImport = TerraformResourceImportBase & { resourceType: "retool_space"; space: APISpace; }; type TerraformResourceImport = TerraformFolderImport | TerraformGroupImport | TerraformPermissionsImport | TerraformSSOImport | TerraformSourceControlImport | TerraformSourceControlSettingsImport | TerraformSpaceImport; type APIFolder = { id: string; name: string; folder_type: string; is_system_folder: boolean; parent_folder_id: string; }; type APIGroup = { id: number; name: string; universal_app_access: string; universal_resource_access: string; universal_workflow_access: string; universal_query_library_access: string; user_list_access: boolean; audit_log_access: boolean; unpublished_release_access: boolean; usage_analytics_access: boolean; account_details_access: boolean; landing_page_app_id: string; }; type APISpace = { id: string; name: string; domain: string; }; type CommonGitHubConfig = { url?: string; enterprise_api_url?: string; }; type GitHubAppConfig = CommonGitHubConfig & { type: 'App'; app_id: string; installation_id: string; private_key: string; }; type GitHubPersonalConfig = CommonGitHubConfig & { type: 'Personal'; personal_access_token: string; }; type GitHubConfig = GitHubAppConfig | GitHubPersonalConfig; type GitLabConfig = { project_id: number; url: string; project_access_token: string; }; type AWSCodeCommitConfig = { url: string; region: string; access_key_id: string; secret_access_key: string; https_username: string; https_password: string; }; type BitbucketConfig = { username: string; url?: string; enterprise_api_url?: string; app_password: string; }; type AzureReposConfig = { url: string; project: string; user: string; personal_access_token: string; use_basic_auth: boolean; }; type SourceControlBaseConfigurationExternal = { provider: string; org: string; repo: string; default_branch: string; repo_version?: string; }; type APISourceControlConfig = (SourceControlBaseConfigurationExternal & { config: GitHubConfig; provider: 'GitHub'; }) | (SourceControlBaseConfigurationExternal & { config: GitLabConfig; provider: 'GitLab'; }) | (SourceControlBaseConfigurationExternal & { config: AWSCodeCommitConfig; provider: 'AWS CodeCommit'; }) | (SourceControlBaseConfigurationExternal & { config: BitbucketConfig; provider: 'Bitbucket'; }) | (SourceControlBaseConfigurationExternal & { config: AzureReposConfig; provider: 'Azure Repos'; }); type APISourceControlSettings = { auto_branch_naming_enabled: boolean; custom_pull_request_template_enabled: boolean; custom_pull_request_template: string; version_control_locked: boolean; }; type APISSOConfig = { config_type: 'google'; google_client_id: string; google_client_secret: string; disable_email_password_login: boolean; jit_enabled: boolean; restricted_domain?: string; trigger_login_automatically: boolean; } | { config_type: 'oidc'; oidc_client_id: string; oidc_client_secret: string; oidc_scopes: string; oidc_auth_url: string; oidc_token_url: string; oidc_userinfo_url?: string; oidc_audience?: string; jwt_email_key: string; jwt_roles_key?: string; jwt_first_name_key: string; jwt_last_name_key: string; roles_mapping?: string; jit_enabled: boolean; restricted_domain?: string; trigger_login_automatically: boolean; disable_email_password_login: boolean; } | { config_type: 'google & oidc'; google_client_id: string; google_client_secret: string; disable_email_password_login: boolean; oidc_client_id: string; oidc_client_secret: string; oidc_scopes: string; oidc_auth_url: string; oidc_token_url: string; oidc_userinfo_url?: string; oidc_audience?: string; jwt_email_key: string; jwt_roles_key?: string; jwt_first_name_key: string; jwt_last_name_key: string; roles_mapping?: string; jit_enabled: boolean; restricted_domain?: string; trigger_login_automatically: boolean; } | { config_type: 'saml'; idp_metadata_xml: string; saml_first_name_attribute: string; saml_last_name_attribute: string; saml_groups_attribute?: string; saml_sync_group_claims: boolean; ldap_sync_group_claims?: boolean; ldap_role_mapping?: string; ldap_server_url?: string; ldap_base_domain_components?: string; ldap_server_name?: string; ldap_server_key?: string; ldap_server_certificate?: string; jit_enabled: boolean; restricted_domain?: string; trigger_login_automatically: boolean; disable_email_password_login: boolean; } | { config_type: 'google & saml'; google_client_id: string; google_client_secret: string; disable_email_password_login: boolean; idp_metadata_xml: string; saml_first_name_attribute: string; saml_last_name_attribute: string; saml_groups_attribute?: string; saml_sync_group_claims: boolean; ldap_sync_group_claims?: boolean; ldap_role_mapping?: string; ldap_server_url?: string; ldap_base_domain_components?: string; ldap_server_name?: string; ldap_server_key?: string; ldap_server_certificate?: string; jit_enabled: boolean; restricted_domain?: string; trigger_login_automatically: boolean; }; export declare const importRetoolConfig: () => Promise; export declare const generateTerraformConfigForFolders: (folders: TerraformFolderImport[]) => Promise; export declare const generateTerraformConfigForGroups: (groups: TerraformGroupImport[]) => string[]; export declare const generateTerraformConfigForPermissions: (permissions: TerraformPermissionsImport[], allResources: TerraformResourceImport[]) => Promise; export declare const generateTerraformConfigForSSO: (sso: TerraformSSOImport) => string[]; export declare const generateTerraformConfigForSourceControl: (sourceControl: TerraformSourceControlImport) => string[]; export declare const generateTerraformConfigForSourceControlSettings: (settings: TerraformSourceControlSettingsImport) => string[]; export declare const generateTerraformConfigForSpaces: (spaces: TerraformSpaceImport[]) => string[]; export {};