@nakedved/ano
Version:
Claude Code plugin for collaborative annotation and review
77 lines (76 loc) • 2.43 kB
TypeScript
/**
* Team Configuration Management
*
* Handles reading/writing team config from .ano/config.json
* Advisory enforcement - shows warnings but doesn't block.
*/
import type { TeamConfig, TeamMember, TeamRole } from './types.js';
/**
* Get the path to the team config file
*/
export declare function getConfigPath(projectRoot?: string): string;
/**
* Get the .ano directory path
*/
export declare function getConfigDir(projectRoot?: string): string;
/**
* Default team configuration
*/
export declare function createDefaultConfig(projectName?: string): TeamConfig;
/**
* Read team config from disk
* Returns null if no config exists
*/
export declare function readTeamConfig(projectRoot?: string): Promise<TeamConfig | null>;
/**
* Write team config to disk
*/
export declare function writeTeamConfig(config: TeamConfig, projectRoot?: string): Promise<void>;
/**
* Initialize team config (create if doesn't exist)
* Returns true if created, false if already exists
*/
export declare function initTeamConfig(projectName?: string, projectRoot?: string): Promise<boolean>;
/**
* Add a member to the team
*/
export declare function addTeamMember(member: TeamMember, projectRoot?: string): Promise<{
added: boolean;
reason?: string;
}>;
/**
* Remove a member from the team (by email)
*/
export declare function removeTeamMember(email: string, projectRoot?: string): Promise<{
removed: boolean;
reason?: string;
}>;
/**
* Find a team member by email
*/
export declare function findTeamMember(email: string, projectRoot?: string): Promise<TeamMember | null>;
/**
* Check if an email belongs to a team member
* Returns member info and their role permissions
*/
export declare function checkTeamMembership(email: string, projectRoot?: string): Promise<{
isMember: boolean;
member?: TeamMember;
role?: TeamRole;
}>;
/**
* Add a new role to the config
*/
export declare function addTeamRole(roleName: string, role: TeamRole, projectRoot?: string): Promise<{
added: boolean;
reason?: string;
}>;
/**
* Update approval requirements
*/
export declare function setRequirements(requirements: Partial<TeamConfig['requirements']>, projectRoot?: string): Promise<void>;
/**
* Get formatted team member status for an approver
* Used in check/approve commands for advisory display
*/
export declare function getApproverStatus(email: string, projectRoot?: string): Promise<string>;