import { Command } from "../../../deps.js";
import { GlobalOptions } from "../../types.js";
import { SyncOptions } from "../../core/conf.js";
import { SpecificItemsConfig } from "../../core/specific_items.js";
import { SyncCodebase } from "../../utils/codebase.js";
import { PathAssigner } from "../../../windmill-utils-internal/src/path-utils/path-assigner.js";
type DynFSElement = {
    isDirectory: boolean;
    path: string;
    whitelistedExt?: boolean;
    getContentText(): Promise<string>;
    getChildren(): AsyncIterable<DynFSElement>;
};
export declare function findCodebase(path: string, codebases: SyncCodebase[]): SyncCodebase | undefined;
export declare function FSFSElement(p: string, codebases: SyncCodebase[], ignoreCodebaseChanges: boolean): Promise<DynFSElement>;
export declare const yamlOptions: {
    sortKeys: (a: any, b: any) => number;
    noCompatMode: boolean;
    noRefs: boolean;
    skipInvalid: boolean;
};
export interface InlineScript {
    path: string;
    content: string;
}
export declare function extractFieldsForRawApps(runnables: Record<string, any>): void;
export declare function extractInlineScriptsForApps(key: string | undefined, rec: any, pathAssigner: PathAssigner, toId: (key: string, val: any) => string, removeSchema: boolean): InlineScript[];
export declare function readDirRecursiveWithIgnore(ignore: (path: string, isDirectory: boolean) => boolean, root: DynFSElement): AsyncGenerator<{
    path: string;
    ignored: boolean;
    isDirectory: boolean;
    getContentText(): Promise<string>;
}>;
export declare function elementsToMap(els: DynFSElement, ignore: (path: string, isDirectory: boolean) => boolean, json: boolean, skips: Skips, specificItems?: SpecificItemsConfig): Promise<{
    [key: string]: string;
}>;
export interface Skips {
    skipVariables?: boolean | undefined;
    skipResources?: boolean | undefined;
    skipResourceTypes?: boolean | undefined;
    skipSecrets?: boolean | undefined;
    skipScripts?: boolean | undefined;
    skipFlows?: boolean | undefined;
    skipApps?: boolean | undefined;
    skipFolders?: boolean | undefined;
    skipWorkspaceDependencies?: boolean | undefined;
    skipScriptsMetadata?: boolean | undefined;
    includeSchedules?: boolean | undefined;
    includeTriggers?: boolean | undefined;
    includeUsers?: boolean | undefined;
    includeGroups?: boolean | undefined;
    includeSettings?: boolean | undefined;
    includeKey?: boolean | undefined;
}
export declare const isWhitelisted: (p: string) => boolean;
export declare function ignoreF(wmillconf: {
    includes?: string[];
    excludes?: string[];
    extraIncludes?: string[];
    skipResourceTypes?: boolean;
    skipWorkspaceDependencies?: boolean;
    json?: boolean;
    includeUsers?: boolean;
    includeGroups?: boolean;
    includeSettings?: boolean;
    includeKey?: boolean;
}): Promise<(p: string, isDirectory: boolean) => boolean>;
export declare function pull(opts: GlobalOptions & SyncOptions & {
    repository?: string;
    promotion?: string;
}): Promise<void>;
export declare function push(opts: GlobalOptions & SyncOptions & {
    repository?: string;
}): Promise<void>;
declare const command: Command<void, void, {
    yes?: true | undefined;
} & {
    dryRun?: true | undefined;
} & {
    plainSecrets?: true | undefined;
} & {
    json?: true | undefined;
} & {
    skipVariables?: true | undefined;
} & {
    skipSecrets?: true | undefined;
} & {
    skipResources?: true | undefined;
} & {
    skipResourceTypes?: true | undefined;
} & {
    skipScripts?: true | undefined;
} & {
    skipFlows?: true | undefined;
} & {
    skipApps?: true | undefined;
} & {
    skipFolders?: true | undefined;
} & {
    skipWorkspaceDependencies?: true | undefined;
} & {
    includeSchedules?: true | undefined;
} & {
    includeTriggers?: true | undefined;
} & {
    includeUsers?: true | undefined;
} & {
    includeGroups?: true | undefined;
} & {
    includeSettings?: true | undefined;
} & {
    includeKey?: true | undefined;
} & {
    skipBranchValidation?: true | undefined;
} & {
    jsonOutput?: true | undefined;
} & {
    includes?: import("../../../deps/jsr.io/@windmill-labs/cliffy-command/1.0.0-rc.5/mod.js").FileType[] | undefined;
} & {
    excludes?: import("../../../deps/jsr.io/@windmill-labs/cliffy-command/1.0.0-rc.5/mod.js").FileType[] | undefined;
} & {
    extraIncludes?: import("../../../deps/jsr.io/@windmill-labs/cliffy-command/1.0.0-rc.5/mod.js").FileType[] | undefined;
} & {
    message?: import("../../../deps/jsr.io/@windmill-labs/cliffy-command/1.0.0-rc.5/mod.js").StringType | undefined;
} & {
    parallel?: string | undefined;
} & {
    repository?: import("../../../deps/jsr.io/@windmill-labs/cliffy-command/1.0.0-rc.5/mod.js").StringType | undefined;
}, [], void, void, void, Command<void, void, void, [], void, {
    number: number;
    integer: number;
    string: string;
    boolean: boolean;
    file: string;
}, void, undefined>>;
export default command;
//# sourceMappingURL=sync.d.ts.map