captan
Version:
Captan — Command your ownership. A tiny, hackable CLI cap table tool.
59 lines • 1.91 kB
TypeScript
/**
* Identifier Resolution System
*
* Provides utilities to resolve stakeholder identifiers that can be either:
* - A prefixed ID (e.g., "sh_alice")
* - An email address (e.g., "alice@example.com")
*
* This allows users to reference stakeholders using whichever identifier
* is more convenient for their workflow.
*/
import { Stakeholder } from './model.js';
export interface ResolverResult {
success: boolean;
stakeholder?: Stakeholder;
error?: string;
}
/**
* Determines if a string is likely an email address
*/
export declare function isEmail(identifier: string): boolean;
/**
* Determines if a string is a prefixed ID
*/
export declare function isPrefixedId(identifier: string): boolean;
/**
* Resolves a stakeholder identifier (ID or email) to a Stakeholder object
*/
export declare function resolveStakeholder(identifier: string | undefined): ResolverResult;
/**
* Resolves multiple stakeholder identifiers
*/
export declare function resolveStakeholders(identifiers: string[]): {
success: boolean;
stakeholders: Stakeholder[];
errors: string[];
};
/**
* Gets a display name for a stakeholder identifier
* This is useful for error messages and confirmations
*/
export declare function getIdentifierDisplay(identifier: string): string;
/**
* Validates that an identifier can be used for stakeholder lookup
*/
export declare function validateIdentifier(identifier: string): {
valid: boolean;
type?: 'email' | 'id';
error?: string;
};
/**
* Suggests similar stakeholders when resolution fails
* Useful for providing helpful error messages
*/
export declare function suggestSimilarStakeholders(identifier: string, limit?: number): Stakeholder[];
/**
* Formats a stakeholder for display with both ID and email
*/
export declare function formatStakeholderReference(stakeholder: Stakeholder): string;
//# sourceMappingURL=identifier-resolver.d.ts.map