import { WorkspaceIntegration, WorkspaceIntegrationType, WorkspaceIntegrations } from "../../model/workspaces/SDKWorkspaceIntegration";
import { WorkspaceIntegrationAccessTokenPayload } from "../../model/workspaces/SDKWorkspaceIntegrationAccessToken";
import { WorkspaceIntegrationGetGitProvidersInput } from "../../model/workspaces/SDKWorkspaceIntegrationGetGitProviders";
import { OAuth2IntegrationPlatform, OAuth2IntegrationTypes, WorkspaceIntegrationOauthRequest } from "../../model/workspaces/SDKWorkspaceIntegrationOauthRequest";
import { GitProvidersBranches } from "../../model/workspaces/integrations/GitProvidersBranches";
import { GitProvidersOrganizations } from "../../model/workspaces/integrations/GitProvidersOrganizations";
import { GitProvidersProjects } from "../../model/workspaces/integrations/GitProvidersProjects";
import { GitProvidersRepositories } from "../../model/workspaces/integrations/GitProvidersRepositories";
import type { DataCore } from "../data/SDKDataCore";
export declare class AreaWorkspaceIntegrations {
    /** Internal: Engine */
    private dataCore;
    constructor(dataCore: DataCore);
    /** Fetches integrations of one specific workspace by provided id
     * @param workspaceId - ID of the workspace
     * @returns Object with integrations of given workspace
     */
    getIntegrations(workspaceId: string): Promise<WorkspaceIntegrations>;
    /** Fetches redirect url for oauth of one specific workspace integration by workspace id and integration type
     * @param workspaceId - ID of the workspace
     * @param type - Type of integration
     * @param platform - Platform of the integration (Desktop or Browser), defaults to Browser
     * @returns Object with redirect url
     */
    getRedirectUrl({ workspaceId, type, platform, }: {
        workspaceId: string;
        type: OAuth2IntegrationTypes;
        platform?: OAuth2IntegrationPlatform;
    }): Promise<WorkspaceIntegrationOauthRequest>;
    /** Fetches Organizations
     * @param workspaceId - ID of the workspace
     * @param integrationId - ID of the integration
     * @returns
     */
    fetchGitProviderOrganization({ workspaceId, integrationId, }: {
        workspaceId: string;
        integrationId: string;
    }): Promise<GitProvidersOrganizations>;
    /** Fetches Projects
     * @param workspaceId - ID of the workspace
     * @param integrationId - ID of the integration
     * @param params - Query string parameters
     * @returns
     */
    fetchGitProviderProjects({ workspaceId, integrationId, params, }: {
        workspaceId: string;
        integrationId: string;
        params?: WorkspaceIntegrationGetGitProvidersInput;
    }): Promise<GitProvidersProjects>;
    /** Fetches Repositaries
     * @param workspaceId - ID of the workspace
     * @param integrationId - ID of the integration
     * @param params - Query string parameters
     * @returns
     */
    fetchGitProviderRepositories({ workspaceId, integrationId, params, }: {
        workspaceId: string;
        integrationId: string;
        params?: WorkspaceIntegrationGetGitProvidersInput;
    }): Promise<GitProvidersRepositories>;
    /** Fetches Branches
     * @param workspaceId - ID of the workspace
     * @param integrationId - ID of the integration
     * @param params - Query string parameters
     * @returns
     */
    fetchGitProviderBranches({ workspaceId, integrationId, params, }: {
        workspaceId: string;
        integrationId: string;
        params?: WorkspaceIntegrationGetGitProvidersInput;
    }): Promise<GitProvidersBranches>;
    /** Creates a new workspace integration via PAT by workspace id and PAT input
     * @param workspaceId - ID of the workspace
     * @param payload - PAT input
     * @returns Workspace integrations with updated integration
     */
    createWorkspaceIntegrationAccessToken({ workspaceId, payload, }: {
        workspaceId: string;
        payload: WorkspaceIntegrationAccessTokenPayload;
    }): Promise<WorkspaceIntegration>;
    /** Delete workspace integration's connection
     * @param workspaceId - ID of the workspace
     * @param integrationId - ID of the integration
     * @param credentialId - ID of the credential
     * @returns Workspace integrations with updated integration
     */
    deleteWorkspaceIntegrationCredential(data: {
        workspaceId: string;
        integrationId: string;
        credentialId: string;
    }): Promise<WorkspaceIntegrationType>;
    /** Delete workspace integration
     * @param workspaceId - ID of the workspace
     * @param integrationId - ID of the integration
     * @returns Workspace integrations with updated integration
     */
    deleteWorkspaceIntegration(data: {
        workspaceId: string;
        integrationId: string;
    }): Promise<WorkspaceIntegrationType>;
}
