import { DTOIntegrationCredentials } from "@supernova-studio/client";
import { OAuth2IntegrationTypes } from "./SDKWorkspaceIntegrationOauthRequest";
export type WorkspaceIntegrationState = "Active" | "Pending" | "Suspended" | "Inactive";
export type WorkspaceIntegrationsRemoteModel = {
    integrations: Array<WorkspaceIntegrationType>;
    hasFigmaIntegration: boolean;
};
export type WorkspaceLinkedIntegrations = {
    Figma?: WorkspaceIntegrationType[];
    FigmaVariablesPlugin?: WorkspaceIntegrationType[];
    Github?: WorkspaceIntegrationType[];
    TokenStudio?: WorkspaceIntegrationType[];
    Gitlab?: WorkspaceIntegrationType[];
    Azure?: WorkspaceIntegrationType[];
    Bitbucket?: WorkspaceIntegrationType[];
};
type WorkspaceIntegrationCredential = DTOIntegrationCredentials & {
    profile: NonNullable<DTOIntegrationCredentials["profile"]>;
    user: NonNullable<DTOIntegrationCredentials["user"]>;
    state: WorkspaceIntegrationState;
};
type WorkspaceIntegrationDesignSystem = {
    brandId: string;
    designSystemId: string;
    date: string;
    title?: string;
    user?: DTOIntegrationCredentials["user"];
};
export type WorkspaceIntegrationType = {
    id: string;
    createdAt: string;
    type: keyof WorkspaceLinkedIntegrations;
    workspaceId: string;
    integrationCredentials?: Array<WorkspaceIntegrationCredential>;
    integrationDesignSystems?: Array<WorkspaceIntegrationDesignSystem>;
};
export type WorkspaceIntegrationTypeOnlyCredentials = Omit<WorkspaceIntegrationType, "integrationDesignSystems"> & {
    type: OAuth2IntegrationTypes;
};
export type WorkspaceIntegrationTypeOnlyDesignSystems = Omit<WorkspaceIntegrationType, "integrationCredentials"> & {
    type: keyof Pick<WorkspaceLinkedIntegrations, "FigmaVariablesPlugin" | "TokenStudio">;
};
export type WorkspaceIntegrationCredentialType = NonNullable<WorkspaceIntegrationType["integrationCredentials"]>[0];
export type WorkspaceIntegrationDesignType = NonNullable<WorkspaceIntegrationType["integrationDesignSystems"]>[0];
export declare class WorkspaceIntegration implements WorkspaceIntegrationType {
    id: string;
    createdAt: string;
    type: keyof WorkspaceLinkedIntegrations;
    workspaceId: string;
    integrationCredentials?: Array<WorkspaceIntegrationCredential>;
    integrationDesignSystems?: Array<WorkspaceIntegrationDesignSystem>;
    state?: WorkspaceIntegrationState;
    constructor(model: WorkspaceIntegrationType);
}
export declare class WorkspaceIntegrations {
    /** List of integrations of the workspace */
    integrations: Array<WorkspaceIntegration>;
    get hasFigmaIntegration(): boolean;
    constructor(model: WorkspaceIntegrationsRemoteModel);
}
export {};
