import { CheckInput, CheckOutput, PlanResourcesInput, PlanResourcesOutput } from "../../engine/v1/engine";
import { SourceAttributes } from "../../policy/v1/policy";
export declare const protobufPackage = "cerbos.audit.v1";
export interface AccessLogEntry {
    callId: string;
    timestamp: Date | undefined;
    peer: Peer | undefined;
    metadata: {
        [key: string]: MetaValues;
    };
    method: string;
    statusCode: number;
    oversized: boolean;
    policySource: PolicySource | undefined;
}
export interface AccessLogEntry_MetadataEntry {
    key: string;
    value: MetaValues | undefined;
}
export interface DecisionLogEntry {
    callId: string;
    timestamp: Date | undefined;
    peer: Peer | undefined;
    inputs: CheckInput[];
    outputs: CheckOutput[];
    error: string;
    method?: {
        $case: "checkResources";
        checkResources: DecisionLogEntry_CheckResources;
    } | {
        $case: "planResources";
        planResources: DecisionLogEntry_PlanResources;
    } | undefined;
    metadata: {
        [key: string]: MetaValues;
    };
    auditTrail: AuditTrail | undefined;
    oversized: boolean;
    policySource: PolicySource | undefined;
}
export interface DecisionLogEntry_CheckResources {
    inputs: CheckInput[];
    outputs: CheckOutput[];
    error: string;
}
export interface DecisionLogEntry_PlanResources {
    input: PlanResourcesInput | undefined;
    output: PlanResourcesOutput | undefined;
    error: string;
}
export interface DecisionLogEntry_MetadataEntry {
    key: string;
    value: MetaValues | undefined;
}
export interface MetaValues {
    values: string[];
}
export interface Peer {
    address: string;
    authInfo: string;
    userAgent: string;
    forwardedFor: string;
}
export interface AuditTrail {
    effectivePolicies: {
        [key: string]: SourceAttributes;
    };
}
export interface AuditTrail_EffectivePoliciesEntry {
    key: string;
    value: SourceAttributes | undefined;
}
export interface PolicySource {
    source?: {
        $case: "blob";
        blob: PolicySource_Blob;
    } | {
        $case: "database";
        database: PolicySource_Database;
    } | {
        $case: "disk";
        disk: PolicySource_Disk;
    } | {
        $case: "git";
        git: PolicySource_Git;
    } | {
        $case: "hub";
        hub: PolicySource_Hub;
    } | {
        $case: "embeddedPdp";
        embeddedPdp: PolicySource_EmbeddedPDP;
    } | undefined;
}
export interface PolicySource_Blob {
    bucketUrl: string;
    prefix: string;
}
export interface PolicySource_Database {
    driver: PolicySource_Database_Driver;
}
export declare enum PolicySource_Database_Driver {
    DRIVER_UNSPECIFIED = 0,
    DRIVER_MYSQL = 1,
    DRIVER_POSTGRES = 2,
    DRIVER_SQLITE3 = 3
}
export declare function policySource_Database_DriverFromJSON(object: any): PolicySource_Database_Driver;
export declare function policySource_Database_DriverToJSON(object: PolicySource_Database_Driver): string;
export interface PolicySource_Disk {
    directory: string;
}
export interface PolicySource_EmbeddedPDP {
    url: string;
    commitHash: string;
    builtAt: Date | undefined;
}
export interface PolicySource_Git {
    repositoryUrl: string;
    branch: string;
    subdirectory: string;
}
export interface PolicySource_Hub {
    source?: {
        $case: "label";
        label: string;
    } | {
        $case: "deploymentId";
        deploymentId: string;
    } | {
        $case: "playgroundId";
        playgroundId: string;
    } | {
        $case: "localBundle";
        localBundle: PolicySource_Hub_LocalBundle;
    } | undefined;
}
export interface PolicySource_Hub_LocalBundle {
    path: string;
}
export declare const AccessLogEntry: MessageFns<AccessLogEntry>;
export declare const AccessLogEntry_MetadataEntry: MessageFns<AccessLogEntry_MetadataEntry>;
export declare const DecisionLogEntry: MessageFns<DecisionLogEntry>;
export declare const DecisionLogEntry_CheckResources: MessageFns<DecisionLogEntry_CheckResources>;
export declare const DecisionLogEntry_PlanResources: MessageFns<DecisionLogEntry_PlanResources>;
export declare const DecisionLogEntry_MetadataEntry: MessageFns<DecisionLogEntry_MetadataEntry>;
export declare const MetaValues: MessageFns<MetaValues>;
export declare const Peer: MessageFns<Peer>;
export declare const AuditTrail: MessageFns<AuditTrail>;
export declare const AuditTrail_EffectivePoliciesEntry: MessageFns<AuditTrail_EffectivePoliciesEntry>;
export declare const PolicySource: MessageFns<PolicySource>;
export declare const PolicySource_Blob: MessageFns<PolicySource_Blob>;
export declare const PolicySource_Database: MessageFns<PolicySource_Database>;
export declare const PolicySource_Disk: MessageFns<PolicySource_Disk>;
export declare const PolicySource_EmbeddedPDP: MessageFns<PolicySource_EmbeddedPDP>;
export declare const PolicySource_Git: MessageFns<PolicySource_Git>;
export declare const PolicySource_Hub: MessageFns<PolicySource_Hub>;
export declare const PolicySource_Hub_LocalBundle: MessageFns<PolicySource_Hub_LocalBundle>;
export interface MessageFns<T> {
    fromJSON(object: any): T;
    toJSON(message: T): unknown;
}
//# sourceMappingURL=audit.d.ts.map