import type { AppPlugin, BkndConfig, MaybePromise, Merge } from "..";
export type BkndModeOptions = {
    /**
     * Whether the application is running in production.
     */
    isProduction?: boolean;
    /**
     * Writer function to write the configuration to the file system
     */
    writer?: (path: string, content: string) => MaybePromise<void>;
    /**
     * Configuration file path
     */
    configFilePath?: string;
    /**
     * Types file path
     * @default "bknd-types.d.ts"
     */
    typesFilePath?: string;
    /**
     * Syncing secrets options
     */
    syncSecrets?: {
        /**
         * Whether to enable syncing secrets
         */
        enabled?: boolean;
        /**
         * Output file path
         */
        outFile?: string;
        /**
         * Format of the output file
         * @default "env"
         */
        format?: "json" | "env";
        /**
         * Whether to include secrets in the output file
         * @default false
         */
        includeSecrets?: boolean;
    };
    /**
     * Determines whether to automatically sync the schema if not in production.
     * @default true
     */
    syncSchema?: boolean | {
        force?: boolean;
        drop?: boolean;
    };
};
export type BkndModeConfig<Args = any, Additional = {}> = BkndConfig<Args, Merge<BkndModeOptions & Additional>>;
export declare function makeModeConfig<Args = any, Config extends BkndModeConfig<Args> = BkndModeConfig<Args>>({ app, ..._config }: Config, args: Args): Promise<{
    config: Omit<Config, "app">;
    isProd: boolean | NonNullable<Config["isProduction"]>;
    plugins: AppPlugin[];
    syncSchemaOptions: (Config["syncSchema"] & object) | {
        force: boolean;
        drop: boolean;
    };
}>;
