import type { SupabaseClient } from '@supabase/supabase-js';
import type { Database } from '../types/supabase.types';
import { OrganizationPerm } from '../utils';
export declare function checkAppExists(supabase: SupabaseClient<Database>, appid: string): Promise<boolean>;
export type PendingOnboardingApp = Pick<Database['public']['Tables']['apps']['Row'], 'app_id' | 'name' | 'icon_url' | 'need_onboarding' | 'existing_app' | 'ios_store_url' | 'android_store_url'>;
export type ExistingOrganizationApp = Pick<Database['public']['Tables']['apps']['Row'], 'app_id' | 'name' | 'owner_org' | 'need_onboarding'>;
export declare function listPendingOnboardingApps(supabase: SupabaseClient<Database>, orgId: string): Promise<PendingOnboardingApp[]>;
export declare function findAppInOrganization(supabase: SupabaseClient<Database>, orgId: string, appId: string): Promise<ExistingOrganizationApp | null>;
export declare function completePendingOnboardingApp(supabase: SupabaseClient<Database>, orgId: string, appId: string): Promise<void>;
/**
 * Check multiple app IDs at once for batch validation (e.g., for suggestions)
 */
export declare function checkAppIdsExist(supabase: SupabaseClient<Database>, appids: string[]): Promise<{
    appid: string;
    exists: boolean;
}[]>;
export declare function check2FAComplianceForApp(supabase: SupabaseClient<Database>, appid: string, silent?: boolean): Promise<void>;
export declare function checkAppExistsAndHasPermissionOrgErr(supabase: SupabaseClient<Database>, apikey: string, appid: string, requiredPermission: OrganizationPerm, silent?: boolean, skip2FACheck?: boolean): Promise<OrganizationPerm>;
export type { AppOptions as Options } from '../schemas/app';
export declare const newIconPath = "assets/icon.png";
export declare const defaultAppIconPath = "public/capgo.png";
export declare function getAppIconStoragePath(organizationUid: string, appId: string): string;
