import _m0 from 'protobufjs/minimal';
export declare const protobufPackage = "yandex.cloud.marketplace.pim.v1.saas";
export declare enum State {
    STATE_UNSPECIFIED = 0,
    ACTIVATED = 1,
    DEACTIVATED = 2,
    PENDING_ACTIVATION = 3,
    DEPRECATED = 4,
    DELETED = 5,
    UNRECOGNIZED = -1
}
export declare function stateFromJSON(object: any): State;
export declare function stateToJSON(object: State): string;
export declare enum ResourceType {
    RESOURCE_TYPE_UNSPECIFIED = 0,
    SAAS = 1,
    K8S = 2,
    COMPUTE = 3,
    CLOUD_APPS = 4,
    UNRECOGNIZED = -1
}
export declare function resourceTypeFromJSON(object: any): ResourceType;
export declare function resourceTypeToJSON(object: ResourceType): string;
export interface ProductInstance {
    id: string;
    resourceId: string;
    resourceType: ResourceType;
    resourceMetadata: {
        [key: string]: string;
    };
    state: State;
    createdAt?: Date;
    updatedAt?: Date;
    saasInfo?: SaasInfo | undefined;
}
export interface ProductInstance_ResourceMetadataEntry {
    key: string;
    value: string;
}
export interface SaasInfo {
    id: string;
    data: {
        [key: string]: string;
    };
}
export interface SaasInfo_DataEntry {
    key: string;
    value: string;
}
export declare const ProductInstance: {
    encode(message: ProductInstance, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ProductInstance;
    fromJSON(object: any): ProductInstance;
    toJSON(message: ProductInstance): unknown;
    fromPartial<I extends {
        id?: string | undefined;
        resourceId?: string | undefined;
        resourceType?: ResourceType | undefined;
        resourceMetadata?: {
            [x: string]: string | undefined;
        } | undefined;
        state?: State | undefined;
        createdAt?: Date | undefined;
        updatedAt?: Date | undefined;
        saasInfo?: {
            id?: string | undefined;
            data?: {
                [x: string]: string | undefined;
            } | undefined;
        } | undefined;
    } & {
        id?: string | undefined;
        resourceId?: string | undefined;
        resourceType?: ResourceType | undefined;
        resourceMetadata?: ({
            [x: string]: string | undefined;
        } & {
            [x: string]: string | undefined;
        } & Record<Exclude<keyof I["resourceMetadata"], string | number>, never>) | undefined;
        state?: State | undefined;
        createdAt?: Date | undefined;
        updatedAt?: Date | undefined;
        saasInfo?: ({
            id?: string | undefined;
            data?: {
                [x: string]: string | undefined;
            } | undefined;
        } & {
            id?: string | undefined;
            data?: ({
                [x: string]: string | undefined;
            } & {
                [x: string]: string | undefined;
            } & Record<Exclude<keyof I["saasInfo"]["data"], string | number>, never>) | undefined;
        } & Record<Exclude<keyof I["saasInfo"], keyof SaasInfo>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof ProductInstance>, never>>(object: I): ProductInstance;
};
export declare const ProductInstance_ResourceMetadataEntry: {
    encode(message: ProductInstance_ResourceMetadataEntry, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ProductInstance_ResourceMetadataEntry;
    fromJSON(object: any): ProductInstance_ResourceMetadataEntry;
    toJSON(message: ProductInstance_ResourceMetadataEntry): unknown;
    fromPartial<I extends {
        key?: string | undefined;
        value?: string | undefined;
    } & {
        key?: string | undefined;
        value?: string | undefined;
    } & Record<Exclude<keyof I, keyof ProductInstance_ResourceMetadataEntry>, never>>(object: I): ProductInstance_ResourceMetadataEntry;
};
export declare const SaasInfo: {
    encode(message: SaasInfo, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): SaasInfo;
    fromJSON(object: any): SaasInfo;
    toJSON(message: SaasInfo): unknown;
    fromPartial<I extends {
        id?: string | undefined;
        data?: {
            [x: string]: string | undefined;
        } | undefined;
    } & {
        id?: string | undefined;
        data?: ({
            [x: string]: string | undefined;
        } & {
            [x: string]: string | undefined;
        } & Record<Exclude<keyof I["data"], string | number>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof SaasInfo>, never>>(object: I): SaasInfo;
};
export declare const SaasInfo_DataEntry: {
    encode(message: SaasInfo_DataEntry, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): SaasInfo_DataEntry;
    fromJSON(object: any): SaasInfo_DataEntry;
    toJSON(message: SaasInfo_DataEntry): unknown;
    fromPartial<I extends {
        key?: string | undefined;
        value?: string | undefined;
    } & {
        key?: string | undefined;
        value?: string | undefined;
    } & Record<Exclude<keyof I, keyof SaasInfo_DataEntry>, never>>(object: I): SaasInfo_DataEntry;
};
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
export type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
    [K in keyof T]?: DeepPartial<T[K]>;
} : Partial<T>;
type KeysOfUnion<T> = T extends T ? keyof T : never;
export type Exact<P, I extends P> = P extends Builtin ? P : P & {
    [K in keyof P]: Exact<P[K], I[K]>;
} & Record<Exclude<keyof I, KeysOfUnion<P>>, never>;
export {};
