import { Result } from "@webiny/feature/api"; import type { Team, GetTeamInput, ListTeamsInput } from "./types.js"; import { TeamNotFoundError, TeamStorageError } from "./errors.js"; export interface ITeamsRepositoryErrors { base: TeamNotFoundError | TeamStorageError; } type RepositoryError = ITeamsRepositoryErrors[keyof ITeamsRepositoryErrors]; export interface ITeamsRepository { get(params: GetTeamInput): Promise>; list(params: ListTeamsInput): Promise>; create(data: Team): Promise>; update(data: Team): Promise>; delete(team: Team): Promise>; } /** Persist and retrieve teams. */ export declare const TeamsRepository: import("@webiny/di").Abstraction; export declare namespace TeamsRepository { type Interface = ITeamsRepository; type Error = RepositoryError; } export type CodeTeam = { name: string; slug: string; description: string; roles: string[]; system?: boolean; }; export interface ITeamFactory { execute(): Promise; } /** Provide code-defined teams. */ export declare const TeamFactory: import("@webiny/di").Abstraction; export declare namespace TeamFactory { type Interface = ITeamFactory; type Return = Promise; type Team = CodeTeam; } export {};