import type { AppOptions } from '../schemas/app';
import type { Organization } from '../utils';
export declare const reverseDomainRegex: RegExp;
export type AppCreateSource = 'cli-direct' | 'onboarding' | 'mcp';
export declare function resolveAppCreateSource(explicit?: AppCreateSource): AppCreateSource;
export declare function isStorageObjectConflict(error: unknown): boolean;
export declare function isDuplicateAppCreateError(error: unknown, httpStatus?: number): boolean;
export type AppAddDuplicateOutcome = 'duplicate_owned' | 'duplicate_taken' | 'not_duplicate';
declare function isAppListedInOrganization(apikey: string, appId: string, ownerOrg: string, options?: {
    supaHost?: string;
    supaAnon?: string;
}): Promise<boolean | null>;
declare function isAppInTargetOrganization(apikey: string, appId: string, ownerOrg: string, options?: {
    supaHost?: string;
    supaAnon?: string;
}): Promise<boolean | null>;
export declare function resolveAppAddDuplicateOutcome(params: {
    apikey: string;
    appId: string;
    ownerOrg: string;
    createError: unknown;
    httpStatus?: number;
    supaHost?: string;
    supaAnon?: string;
}, deps?: {
    isAppInTargetOrganization?: typeof isAppInTargetOrganization;
    isAppListedInOrganization?: typeof isAppListedInOrganization;
}): Promise<AppAddDuplicateOutcome>;
export declare function addAppInternal(initialAppId: string, options: AppOptions, organization?: Organization, silent?: boolean, source?: AppCreateSource): Promise<{
    appId: any;
    organizationUid: string;
    userId: string;
    name: string;
    iconUrl: string | undefined;
    signedURL: string | undefined;
}>;
export declare function addApp(appId: string, options: AppOptions): Promise<void>;
export {};
