/**
 * Onboarding Provision Service
 *
 * Bridges the Onboarding Agent's discovery output to the Template Engine.
 * Validates the handoff payload, resolves the best-match template, and
 * provisions a fully configured team via TemplateService.
 *
 * @module services/onboarding/onboarding-provision.service
 */
import { type OnboardingProvisionRequest, type OnboardingProvisionResponse } from './onboarding-provision.types.js';
/**
 * Generate a human-readable team name from the customer name and template category.
 *
 * @param customerName - Business or company name from the discovery payload
 * @param templateId - Resolved template ID
 * @returns A team name like "Acme Corp Growth Team"
 */
export declare function generateTeamName(customerName: string, templateId: string): string;
/**
 * Collect pending integrations from the stack mapping answers.
 *
 * Filters out empty/falsy values and the literal "none" string.
 *
 * @param stackMapping - Stack mapping section from the provision request
 * @returns Array of integration tool names queued for setup
 */
export declare function collectIntegrations(stackMapping?: OnboardingProvisionRequest['stackMapping']): string[];
/**
 * Provision a team from an onboarding discovery payload.
 *
 * Validates the request, resolves the matching template, gates on budget tier,
 * creates the team via TemplateService, attributes the team to the
 * authenticated principal (`ownerUserId` — N1b, Phase E pre-beta), persists
 * via StorageService, and returns a structured response with team details,
 * lead agent focus, and pending integrations.
 *
 * The owner attribution is sourced *only* from the authenticated principal
 * (passed in by the route layer), never from the request body — this closes
 * the cross-tenant team-attribution leak Arch flagged on PR #350. When
 * `ownerUserId` is omitted, the team is created without an owner (OSS
 * single-user / legacy callers); the field stays undefined and read-side
 * scoping (separate ticket) treats those teams as unscoped.
 *
 * @param request - The onboarding handoff payload from the Onboarding Agent
 * @param ownerUserId - Authenticated principal id (`req.user.userId`)
 * @returns Structured response indicating success or failure with details
 *
 * @example
 * ```typescript
 * const response = await provisionFromOnboarding({
 *   customer: {
 *     identity: { name: 'Acme Corp', vertical: 'Content/Marketing', size: 'small' },
 *     strategy: { goal: 'Scale', budget: 'pro', urgency: 'immediate' },
 *   },
 * }, 'user-aaa');
 * // response.success === true
 * // response.data.teamName === 'Acme Corp Growth Team'
 * // (the persisted team carries ownerUserId === 'user-aaa')
 * ```
 */
export declare function provisionFromOnboarding(request: unknown, ownerUserId?: string): Promise<OnboardingProvisionResponse>;
//# sourceMappingURL=onboarding-provision.service.d.ts.map