import { TrmPackage } from "../../trmPackage";
import { IActionContext } from "..";
import { DEVCLASS, SENVI, TADIR } from "../../client";
export interface FindDependenciesActionInput {
    contextData?: {
        noInquirer?: boolean;
    };
    packageData: {
        package: DEVCLASS;
        objects?: TADIR[];
    };
    printOptions?: {
        trmDependencies?: boolean;
        sapObjectDependencies?: boolean;
    };
}
type ObjectSenvi = {
    tadir: TADIR;
    senvi: SENVI[];
};
export type TableDependency = {
    foundIn: TADIR;
    object: any;
};
export type SapEntriesDependency = {
    table: string;
    dependencies: TableDependency[];
};
export type TrmDependency = {
    devclass: DEVCLASS;
    package: TrmPackage;
    integrity?: string;
    sapEntries: SapEntriesDependency[];
};
type WorkflowRuntime = {
    abort: boolean;
    packageData: {
        ignoredTadir: TADIR[];
    };
    repositoryEnvironment: {
        senvi: ObjectSenvi[];
    };
    dependencies: {
        customObjects: SapEntriesDependency[];
        sapObjects: SapEntriesDependency[];
        withTrmPackage: TrmDependency[];
        withoutTrmPackage: TrmDependency[];
    };
};
export type FindDependenciesActionOutput = {
    trmPackageDependencies: {
        withTrmPackage: TrmDependency[];
        withoutTrmPackage: TrmDependency[];
    };
    objectDependencies: {
        customObjects: SapEntriesDependency[];
        sapObjects: SapEntriesDependency[];
    };
};
export interface FindDependenciesWorkflowContext extends IActionContext {
    rawInput: FindDependenciesActionInput;
    runtime?: WorkflowRuntime;
    output?: FindDependenciesActionOutput;
}
export declare function findDependencies(inputData: FindDependenciesActionInput): Promise<FindDependenciesActionOutput>;
export {};
