import _m0 from "protobufjs/minimal";
export declare const protobufPackage = "snapchat.lenses";
export declare enum HttpRequestMethod {
    HTTP_METHOD_UNSET = "HTTP_METHOD_UNSET",
    HTTP_METHOD_GET = "HTTP_METHOD_GET",
    HTTP_METHOD_POST = "HTTP_METHOD_POST",
    HTTP_METHOD_PUT = "HTTP_METHOD_PUT",
    HTTP_METHOD_DELETE = "HTTP_METHOD_DELETE",
    HTTP_METHOD_PATCH = "HTTP_METHOD_PATCH",
    UNRECOGNIZED = "UNRECOGNIZED"
}
export declare function httpRequestMethodFromJSON(object: any): HttpRequestMethod;
export declare function httpRequestMethodToNumber(object: HttpRequestMethod): number;
export declare enum ResponseCode {
    RESPONSE_CODE_UNSET = "RESPONSE_CODE_UNSET",
    SUCCESS = "SUCCESS",
    REDIRECTED = "REDIRECTED",
    BAD_REQUEST = "BAD_REQUEST",
    ACCESS_DENIED = "ACCESS_DENIED",
    NOT_FOUND = "NOT_FOUND",
    TIMEOUT = "TIMEOUT",
    REQUEST_TOO_LARGE = "REQUEST_TOO_LARGE",
    SERVER_ERROR = "SERVER_ERROR",
    CANCELLED = "CANCELLED",
    PROXY_ERROR = "PROXY_ERROR",
    UNRECOGNIZED = "UNRECOGNIZED"
}
export declare function responseCodeFromJSON(object: any): ResponseCode;
export declare function responseCodeToNumber(object: ResponseCode): number;
export interface PerformHttpCallRequest {
    url: string;
    method: HttpRequestMethod;
    headers: {
        [key: string]: string;
    };
    body: Uint8Array;
    apiSpecId: string;
    isStudioDev: boolean;
}
export interface PerformHttpCallRequest_HeadersEntry {
    key: string;
    value: string;
}
export interface PerformHttpCallResponse {
    code: number;
    headers: {
        [key: string]: string;
    };
    body: Uint8Array;
}
export interface PerformHttpCallResponse_HeadersEntry {
    key: string;
    value: string;
}
export interface GetOAuth2InfoRequest {
    apiSpecId: string;
}
export interface GetOAuth2InfoResponse {
    clientId: string;
    grantType: GetOAuth2InfoResponse_GrantType;
    authorizationUrl: string;
    scope: string;
}
export declare enum GetOAuth2InfoResponse_GrantType {
    GRANT_TYPE_UNSET = "GRANT_TYPE_UNSET",
    AUTHORIZATION_CODE = "AUTHORIZATION_CODE",
    AUTHORIZATION_CODE_WITH_PKCE = "AUTHORIZATION_CODE_WITH_PKCE",
    IMPLICIT = "IMPLICIT",
    CLIENT_CREDENTIALS = "CLIENT_CREDENTIALS",
    UNRECOGNIZED = "UNRECOGNIZED"
}
export declare function getOAuth2InfoResponse_GrantTypeFromJSON(object: any): GetOAuth2InfoResponse_GrantType;
export declare function getOAuth2InfoResponse_GrantTypeToNumber(object: GetOAuth2InfoResponse_GrantType): number;
export interface TokenExchangeError {
    error: TokenExchangeError_TokenExchangeErrorType;
    errorDescription: string;
}
export declare enum TokenExchangeError_TokenExchangeErrorType {
    ERROR_TYPE_UNSET = "ERROR_TYPE_UNSET",
    INVALID_REQUEST = "INVALID_REQUEST",
    INVALID_CLIENT = "INVALID_CLIENT",
    INVALID_GRANT = "INVALID_GRANT",
    UNAUTHORIZED_CLIENT = "UNAUTHORIZED_CLIENT",
    UNSUPPORTED_GRANT_TYPE = "UNSUPPORTED_GRANT_TYPE",
    INVALID_SCOPE = "INVALID_SCOPE",
    UNRECOGNIZED = "UNRECOGNIZED"
}
export declare function tokenExchangeError_TokenExchangeErrorTypeFromJSON(object: any): TokenExchangeError_TokenExchangeErrorType;
export declare function tokenExchangeError_TokenExchangeErrorTypeToNumber(object: TokenExchangeError_TokenExchangeErrorType): number;
export interface TokenDetails {
    accessToken: string;
    tokenType: string;
    expiresInSeconds: string;
    refreshToken: string;
    scope: string;
}
export interface PerformTokenExchangeRequest {
    apiSpecId: string;
    authorizationCode: string;
    codeVerifier: string;
}
export interface PerformTokenExchangeResponse {
    response?: {
        $case: "tokenDetails";
        tokenDetails: TokenDetails;
    } | {
        $case: "error";
        error: TokenExchangeError;
    };
}
export interface RefreshTokenRequest {
    apiSpecId: string;
    refreshToken: string;
}
export interface RefreshTokenResponse {
    response?: {
        $case: "tokenDetails";
        tokenDetails: TokenDetails;
    } | {
        $case: "error";
        error: TokenExchangeError;
    };
}
export interface PerformApiCallRequest {
    apiSpecSetId: string;
    endpointRefId: string;
    parameters: {
        [key: string]: string;
    };
    body: Uint8Array;
    lensId: string;
    isStudioDev: boolean;
    cacheTtlSec: number;
    linkedResources: LinkedResource[];
}
export interface PerformApiCallRequest_ParametersEntry {
    key: string;
    value: string;
}
export interface PerformApiCallResponse {
    responseCode: ResponseCode;
    metadata: {
        [key: string]: string;
    };
    body: Uint8Array;
    userLocationUsed: boolean;
    linkedResources: LinkedResource[];
}
export interface PerformApiCallResponse_MetadataEntry {
    key: string;
    value: string;
}
export interface LinkedResource {
    url: string;
    encryptionKey: Uint8Array;
}
export declare const PerformHttpCallRequest: {
    encode(message: PerformHttpCallRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PerformHttpCallRequest;
    fromPartial<I extends {
        url?: string | undefined;
        method?: HttpRequestMethod | undefined;
        headers?: {
            [x: string]: string | undefined;
        } | undefined;
        body?: Uint8Array | undefined;
        apiSpecId?: string | undefined;
        isStudioDev?: boolean | undefined;
    } & {
        url?: string | undefined;
        method?: HttpRequestMethod | undefined;
        headers?: ({
            [x: string]: string | undefined;
        } & {
            [x: string]: string | undefined;
        } & Record<Exclude<keyof I["headers"], string | number>, never>) | undefined;
        body?: Uint8Array | undefined;
        apiSpecId?: string | undefined;
        isStudioDev?: boolean | undefined;
    } & Record<Exclude<keyof I, keyof PerformHttpCallRequest>, never>>(object: I): PerformHttpCallRequest;
};
export declare const PerformHttpCallRequest_HeadersEntry: {
    encode(message: PerformHttpCallRequest_HeadersEntry, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PerformHttpCallRequest_HeadersEntry;
    fromPartial<I extends {
        key?: string | undefined;
        value?: string | undefined;
    } & {
        key?: string | undefined;
        value?: string | undefined;
    } & Record<Exclude<keyof I, keyof PerformHttpCallRequest_HeadersEntry>, never>>(object: I): PerformHttpCallRequest_HeadersEntry;
};
export declare const PerformHttpCallResponse: {
    encode(message: PerformHttpCallResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PerformHttpCallResponse;
    fromPartial<I extends {
        code?: number | undefined;
        headers?: {
            [x: string]: string | undefined;
        } | undefined;
        body?: Uint8Array | undefined;
    } & {
        code?: number | undefined;
        headers?: ({
            [x: string]: string | undefined;
        } & {
            [x: string]: string | undefined;
        } & Record<Exclude<keyof I["headers"], string | number>, never>) | undefined;
        body?: Uint8Array | undefined;
    } & Record<Exclude<keyof I, keyof PerformHttpCallResponse>, never>>(object: I): PerformHttpCallResponse;
};
export declare const PerformHttpCallResponse_HeadersEntry: {
    encode(message: PerformHttpCallResponse_HeadersEntry, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PerformHttpCallResponse_HeadersEntry;
    fromPartial<I extends {
        key?: string | undefined;
        value?: string | undefined;
    } & {
        key?: string | undefined;
        value?: string | undefined;
    } & Record<Exclude<keyof I, keyof PerformHttpCallResponse_HeadersEntry>, never>>(object: I): PerformHttpCallResponse_HeadersEntry;
};
export declare const GetOAuth2InfoRequest: {
    encode(message: GetOAuth2InfoRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): GetOAuth2InfoRequest;
    fromPartial<I extends {
        apiSpecId?: string | undefined;
    } & {
        apiSpecId?: string | undefined;
    } & Record<Exclude<keyof I, "apiSpecId">, never>>(object: I): GetOAuth2InfoRequest;
};
export declare const GetOAuth2InfoResponse: {
    encode(message: GetOAuth2InfoResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): GetOAuth2InfoResponse;
    fromPartial<I extends {
        clientId?: string | undefined;
        grantType?: GetOAuth2InfoResponse_GrantType | undefined;
        authorizationUrl?: string | undefined;
        scope?: string | undefined;
    } & {
        clientId?: string | undefined;
        grantType?: GetOAuth2InfoResponse_GrantType | undefined;
        authorizationUrl?: string | undefined;
        scope?: string | undefined;
    } & Record<Exclude<keyof I, keyof GetOAuth2InfoResponse>, never>>(object: I): GetOAuth2InfoResponse;
};
export declare const TokenExchangeError: {
    encode(message: TokenExchangeError, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): TokenExchangeError;
    fromPartial<I extends {
        error?: TokenExchangeError_TokenExchangeErrorType | undefined;
        errorDescription?: string | undefined;
    } & {
        error?: TokenExchangeError_TokenExchangeErrorType | undefined;
        errorDescription?: string | undefined;
    } & Record<Exclude<keyof I, keyof TokenExchangeError>, never>>(object: I): TokenExchangeError;
};
export declare const TokenDetails: {
    encode(message: TokenDetails, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): TokenDetails;
    fromPartial<I extends {
        accessToken?: string | undefined;
        tokenType?: string | undefined;
        expiresInSeconds?: string | undefined;
        refreshToken?: string | undefined;
        scope?: string | undefined;
    } & {
        accessToken?: string | undefined;
        tokenType?: string | undefined;
        expiresInSeconds?: string | undefined;
        refreshToken?: string | undefined;
        scope?: string | undefined;
    } & Record<Exclude<keyof I, keyof TokenDetails>, never>>(object: I): TokenDetails;
};
export declare const PerformTokenExchangeRequest: {
    encode(message: PerformTokenExchangeRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PerformTokenExchangeRequest;
    fromPartial<I extends {
        apiSpecId?: string | undefined;
        authorizationCode?: string | undefined;
        codeVerifier?: string | undefined;
    } & {
        apiSpecId?: string | undefined;
        authorizationCode?: string | undefined;
        codeVerifier?: string | undefined;
    } & Record<Exclude<keyof I, keyof PerformTokenExchangeRequest>, never>>(object: I): PerformTokenExchangeRequest;
};
export declare const PerformTokenExchangeResponse: {
    encode(message: PerformTokenExchangeResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PerformTokenExchangeResponse;
    fromPartial<I extends {
        response?: ({
            tokenDetails?: {
                accessToken?: string | undefined;
                tokenType?: string | undefined;
                expiresInSeconds?: string | undefined;
                refreshToken?: string | undefined;
                scope?: string | undefined;
            } | undefined;
        } & {
            $case: "tokenDetails";
        }) | ({
            error?: {
                error?: TokenExchangeError_TokenExchangeErrorType | undefined;
                errorDescription?: string | undefined;
            } | undefined;
        } & {
            $case: "error";
        }) | undefined;
    } & {
        response?: ({
            tokenDetails?: {
                accessToken?: string | undefined;
                tokenType?: string | undefined;
                expiresInSeconds?: string | undefined;
                refreshToken?: string | undefined;
                scope?: string | undefined;
            } | undefined;
        } & {
            $case: "tokenDetails";
        } & {
            tokenDetails?: ({
                accessToken?: string | undefined;
                tokenType?: string | undefined;
                expiresInSeconds?: string | undefined;
                refreshToken?: string | undefined;
                scope?: string | undefined;
            } & {
                accessToken?: string | undefined;
                tokenType?: string | undefined;
                expiresInSeconds?: string | undefined;
                refreshToken?: string | undefined;
                scope?: string | undefined;
            } & Record<Exclude<keyof I["response"]["tokenDetails"], keyof TokenDetails>, never>) | undefined;
            $case: "tokenDetails";
        } & Record<Exclude<keyof I["response"], "$case" | "tokenDetails">, never>) | ({
            error?: {
                error?: TokenExchangeError_TokenExchangeErrorType | undefined;
                errorDescription?: string | undefined;
            } | undefined;
        } & {
            $case: "error";
        } & {
            error?: ({
                error?: TokenExchangeError_TokenExchangeErrorType | undefined;
                errorDescription?: string | undefined;
            } & {
                error?: TokenExchangeError_TokenExchangeErrorType | undefined;
                errorDescription?: string | undefined;
            } & Record<Exclude<keyof I["response"]["error"], keyof TokenExchangeError>, never>) | undefined;
            $case: "error";
        } & Record<Exclude<keyof I["response"], "error" | "$case">, never>) | undefined;
    } & Record<Exclude<keyof I, "response">, never>>(object: I): PerformTokenExchangeResponse;
};
export declare const RefreshTokenRequest: {
    encode(message: RefreshTokenRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): RefreshTokenRequest;
    fromPartial<I extends {
        apiSpecId?: string | undefined;
        refreshToken?: string | undefined;
    } & {
        apiSpecId?: string | undefined;
        refreshToken?: string | undefined;
    } & Record<Exclude<keyof I, keyof RefreshTokenRequest>, never>>(object: I): RefreshTokenRequest;
};
export declare const RefreshTokenResponse: {
    encode(message: RefreshTokenResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): RefreshTokenResponse;
    fromPartial<I extends {
        response?: ({
            tokenDetails?: {
                accessToken?: string | undefined;
                tokenType?: string | undefined;
                expiresInSeconds?: string | undefined;
                refreshToken?: string | undefined;
                scope?: string | undefined;
            } | undefined;
        } & {
            $case: "tokenDetails";
        }) | ({
            error?: {
                error?: TokenExchangeError_TokenExchangeErrorType | undefined;
                errorDescription?: string | undefined;
            } | undefined;
        } & {
            $case: "error";
        }) | undefined;
    } & {
        response?: ({
            tokenDetails?: {
                accessToken?: string | undefined;
                tokenType?: string | undefined;
                expiresInSeconds?: string | undefined;
                refreshToken?: string | undefined;
                scope?: string | undefined;
            } | undefined;
        } & {
            $case: "tokenDetails";
        } & {
            tokenDetails?: ({
                accessToken?: string | undefined;
                tokenType?: string | undefined;
                expiresInSeconds?: string | undefined;
                refreshToken?: string | undefined;
                scope?: string | undefined;
            } & {
                accessToken?: string | undefined;
                tokenType?: string | undefined;
                expiresInSeconds?: string | undefined;
                refreshToken?: string | undefined;
                scope?: string | undefined;
            } & Record<Exclude<keyof I["response"]["tokenDetails"], keyof TokenDetails>, never>) | undefined;
            $case: "tokenDetails";
        } & Record<Exclude<keyof I["response"], "$case" | "tokenDetails">, never>) | ({
            error?: {
                error?: TokenExchangeError_TokenExchangeErrorType | undefined;
                errorDescription?: string | undefined;
            } | undefined;
        } & {
            $case: "error";
        } & {
            error?: ({
                error?: TokenExchangeError_TokenExchangeErrorType | undefined;
                errorDescription?: string | undefined;
            } & {
                error?: TokenExchangeError_TokenExchangeErrorType | undefined;
                errorDescription?: string | undefined;
            } & Record<Exclude<keyof I["response"]["error"], keyof TokenExchangeError>, never>) | undefined;
            $case: "error";
        } & Record<Exclude<keyof I["response"], "error" | "$case">, never>) | undefined;
    } & Record<Exclude<keyof I, "response">, never>>(object: I): RefreshTokenResponse;
};
export declare const PerformApiCallRequest: {
    encode(message: PerformApiCallRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PerformApiCallRequest;
    fromPartial<I extends {
        apiSpecSetId?: string | undefined;
        endpointRefId?: string | undefined;
        parameters?: {
            [x: string]: string | undefined;
        } | undefined;
        body?: Uint8Array | undefined;
        lensId?: string | undefined;
        isStudioDev?: boolean | undefined;
        cacheTtlSec?: number | undefined;
        linkedResources?: {
            url?: string | undefined;
            encryptionKey?: Uint8Array | undefined;
        }[] | undefined;
    } & {
        apiSpecSetId?: string | undefined;
        endpointRefId?: string | undefined;
        parameters?: ({
            [x: string]: string | undefined;
        } & {
            [x: string]: string | undefined;
        } & Record<Exclude<keyof I["parameters"], string | number>, never>) | undefined;
        body?: Uint8Array | undefined;
        lensId?: string | undefined;
        isStudioDev?: boolean | undefined;
        cacheTtlSec?: number | undefined;
        linkedResources?: ({
            url?: string | undefined;
            encryptionKey?: Uint8Array | undefined;
        }[] & ({
            url?: string | undefined;
            encryptionKey?: Uint8Array | undefined;
        } & {
            url?: string | undefined;
            encryptionKey?: Uint8Array | undefined;
        } & Record<Exclude<keyof I["linkedResources"][number], keyof LinkedResource>, never>)[] & Record<Exclude<keyof I["linkedResources"], keyof {
            url?: string | undefined;
            encryptionKey?: Uint8Array | undefined;
        }[]>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof PerformApiCallRequest>, never>>(object: I): PerformApiCallRequest;
};
export declare const PerformApiCallRequest_ParametersEntry: {
    encode(message: PerformApiCallRequest_ParametersEntry, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PerformApiCallRequest_ParametersEntry;
    fromPartial<I extends {
        key?: string | undefined;
        value?: string | undefined;
    } & {
        key?: string | undefined;
        value?: string | undefined;
    } & Record<Exclude<keyof I, keyof PerformApiCallRequest_ParametersEntry>, never>>(object: I): PerformApiCallRequest_ParametersEntry;
};
export declare const PerformApiCallResponse: {
    encode(message: PerformApiCallResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PerformApiCallResponse;
    fromPartial<I extends {
        responseCode?: ResponseCode | undefined;
        metadata?: {
            [x: string]: string | undefined;
        } | undefined;
        body?: Uint8Array | undefined;
        userLocationUsed?: boolean | undefined;
        linkedResources?: {
            url?: string | undefined;
            encryptionKey?: Uint8Array | undefined;
        }[] | undefined;
    } & {
        responseCode?: ResponseCode | undefined;
        metadata?: ({
            [x: string]: string | undefined;
        } & {
            [x: string]: string | undefined;
        } & Record<Exclude<keyof I["metadata"], string | number>, never>) | undefined;
        body?: Uint8Array | undefined;
        userLocationUsed?: boolean | undefined;
        linkedResources?: ({
            url?: string | undefined;
            encryptionKey?: Uint8Array | undefined;
        }[] & ({
            url?: string | undefined;
            encryptionKey?: Uint8Array | undefined;
        } & {
            url?: string | undefined;
            encryptionKey?: Uint8Array | undefined;
        } & Record<Exclude<keyof I["linkedResources"][number], keyof LinkedResource>, never>)[] & Record<Exclude<keyof I["linkedResources"], keyof {
            url?: string | undefined;
            encryptionKey?: Uint8Array | undefined;
        }[]>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof PerformApiCallResponse>, never>>(object: I): PerformApiCallResponse;
};
export declare const PerformApiCallResponse_MetadataEntry: {
    encode(message: PerformApiCallResponse_MetadataEntry, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PerformApiCallResponse_MetadataEntry;
    fromPartial<I extends {
        key?: string | undefined;
        value?: string | undefined;
    } & {
        key?: string | undefined;
        value?: string | undefined;
    } & Record<Exclude<keyof I, keyof PerformApiCallResponse_MetadataEntry>, never>>(object: I): PerformApiCallResponse_MetadataEntry;
};
export declare const LinkedResource: {
    encode(message: LinkedResource, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): LinkedResource;
    fromPartial<I extends {
        url?: string | undefined;
        encryptionKey?: Uint8Array | undefined;
    } & {
        url?: string | undefined;
        encryptionKey?: Uint8Array | undefined;
    } & Record<Exclude<keyof I, keyof LinkedResource>, never>>(object: I): LinkedResource;
};
export interface RemoteApiService {
    PerformHttpCall(request: PerformHttpCallRequest): Promise<PerformHttpCallResponse>;
    GetOAuth2Info(request: GetOAuth2InfoRequest): Promise<GetOAuth2InfoResponse>;
    PerformTokenExchange(request: PerformTokenExchangeRequest): Promise<PerformTokenExchangeResponse>;
    RefreshToken(request: RefreshTokenRequest): Promise<RefreshTokenResponse>;
    PerformApiCall(request: PerformApiCallRequest): Promise<PerformApiCallResponse>;
}
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 {
    $case: string;
} ? {
    [K in keyof Omit<T, "$case">]?: DeepPartial<T[K]>;
} & {
    $case: T["$case"];
} : 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 {};
//# sourceMappingURL=remote_api_service.d.ts.map