import type { CapacitorConfig } from '../../config';
import { createSupabaseClient, invokeCapgoCliApi } from '../../utils.js';
export interface BuilderVisibleApp {
    app_id: string;
    name: string | null;
    need_onboarding?: boolean | null;
}
export interface BuilderAppApiOptions {
    supaHost?: string;
    supaAnon?: string;
}
export type AppSelectionErrorCode = 'list' | 'read' | 'missing' | 'build' | 'permission' | 'config' | 'api';
export declare class AppSelectionError extends Error {
    readonly code: AppSelectionErrorCode;
    constructor(code: AppSelectionErrorCode, message: string, options?: ErrorOptions);
}
export declare function getAppSelectionSuggestion(config: CapacitorConfig): {
    appId: string;
    source: 'builder' | 'capacitor';
};
export declare function rankVisibleApps<T extends BuilderVisibleApp>(apps: T[], suggestedId: string): T[];
export declare function listVisibleBuilderApps(apikey: string, options?: BuilderAppApiOptions, request?: typeof invokeCapgoCliApi): Promise<BuilderVisibleApp[]>;
export declare function verifyBuilderApp(apikey: string, appId: string, options?: BuilderAppApiOptions, dependencies?: {
    request?: typeof invokeCapgoCliApi;
    createClient?: typeof createSupabaseClient;
}): Promise<void>;
export declare function persistBuilderAppSelection(appId: string): Promise<boolean>;
export declare const builderAppCreationUrl: string;
export declare function openBuilderAppCreation(): Promise<boolean>;
export interface BuilderAppSelectionServices {
    list: (apikey: string) => Promise<BuilderVisibleApp[]>;
    verify: (apikey: string, appId: string) => Promise<void>;
    persist: (appId: string) => Promise<boolean>;
    openDashboard: () => Promise<boolean>;
    dashboardUrl: string;
}
export declare function createBuilderAppSelectionServices(options?: BuilderAppApiOptions): BuilderAppSelectionServices;
