import { z } from 'zod';
export declare const GLOBAL_CONFIG_DIR: string;
export declare const GLOBAL_CONFIG_FILE: string;
declare const GlobalConfigSchema: z.ZodObject<{
    installationId: z.ZodCatch<z.ZodOptional<z.ZodString>>;
    uvDefaultIndex: z.ZodCatch<z.ZodOptional<z.ZodString>>;
    uvIndex: z.ZodCatch<z.ZodOptional<z.ZodString>>;
    disableTransactionSearch: z.ZodCatch<z.ZodOptional<z.ZodBoolean>>;
    transactionSearchIndexPercentage: z.ZodCatch<z.ZodOptional<z.ZodNumber>>;
    telemetry: z.ZodCatch<z.ZodOptional<z.ZodObject<{
        enabled: z.ZodCatch<z.ZodOptional<z.ZodBoolean>>;
        endpoint: z.ZodCatch<z.ZodOptional<z.ZodString>>;
        audit: z.ZodCatch<z.ZodOptional<z.ZodBoolean>>;
    }, z.core.$strip>>>;
}, z.core.$loose>;
export type GlobalConfig = z.infer<typeof GlobalConfigSchema>;
export declare function readGlobalConfig(configFile?: string): Promise<GlobalConfig>;
export declare function readGlobalConfigSync(configFile?: string): GlobalConfig;
export declare function updateGlobalConfig(partial: GlobalConfig, configDir?: string, configFile?: string): Promise<boolean>;
/**
 * Returns the installationId, generating one if it doesn't exist yet.
 * `created: true` means this is the first run (ID was just generated).
 *
 * Note: concurrent first-run invocations may each generate a different ID;
 * the last write wins. This is acceptable — the ID only needs to be stable
 * after the first successful write, and CLI invocations are typically sequential.
 */
export declare function getOrCreateInstallationId(configDir?: string, configFile?: string): Promise<{
    id: string;
    created: boolean;
}>;
export {};
//# sourceMappingURL=global-config.d.ts.map