import { type AppManifest, type IconSpec, type NavigatorSpec } from '@ankhorage/contracts'; export interface ResolveAuthLayoutPlanInput { manifest: AppManifest; } type AuthGeneratedFileKind = 'adapter' | 'form' | 'navigation' | 'session' | 'sign-out' | 'auth-screen' | 'screen-controller' | 'oauth-runtime' | 'oauth-completion' | 'oauth-state' | 'oauth-callback' | 'screen-runtime'; export interface AuthGeneratedFilePlan { path: string; kind: AuthGeneratedFileKind; routeName?: string; screenId?: string; authMode?: 'signIn' | 'signUp'; } export interface GeneratedOAuthProviderPlan { id: 'google' | 'apple'; label: string; scopes: string[]; queryParams: Record; icon?: IconSpec; } export interface AuthOAuthLayoutPlan { callbackRoute: string; callbackRouteName: string; callbackTopLevelRouteName: string; providers: GeneratedOAuthProviderPlan[]; } interface BaseAuthLayoutPlan { publicRoutes: string[]; generatedFiles: AuthGeneratedFilePlan[]; authScreenFiles: AuthGeneratedFilePlan[]; } interface DisabledAuthLayoutPlan extends BaseAuthLayoutPlan { enabled: false; } export interface EnabledAuthLayoutPlan extends BaseAuthLayoutPlan { enabled: true; provider: 'supabase'; signInRoute: string; signInRouteName: string; signUpRoute: string; signUpRouteName: string; signOutRoute: string; signOutRouteName: string; postSignInRoute: string; postSignInRouteName: string; oauth?: AuthOAuthLayoutPlan; appNavigator: NavigatorSpec; authNavigator: NavigatorSpec; } export type AuthLayoutPlan = DisabledAuthLayoutPlan | EnabledAuthLayoutPlan; export declare function resolveAuthLayoutPlan(input: ResolveAuthLayoutPlanInput): AuthLayoutPlan; export {}; //# sourceMappingURL=resolveAuthLayoutPlan.d.ts.map