import { Model, Program } from "@typespec/compiler";
import { HttpOperation, HttpOperationParameter, HttpOperationResponse, HttpStatusCodesEntry } from "@typespec/http";
import { PagedResultMetadata } from "@azure-tools/typespec-azure-core";
import { SdkClient, SdkContext } from "@azure-tools/typespec-client-generator-core";
export declare function sortedOperationResponses(responses: HttpOperationResponse[]): HttpOperationResponse[];
/**
 * This function computes all the response types error and success
 * an operation can end up returning.
 */
/**
 * Extracts all success or defined status codes for a give operation
 */
export declare function getOperationSuccessStatus(operation: HttpOperation): string[];
export declare function getOperationStatuscode(response: HttpOperationResponse): string;
export declare function isDefaultStatusCode(statusCodes: HttpStatusCodesEntry): boolean;
export declare function isDefinedStatusCode(statusCodes: HttpStatusCodesEntry): boolean;
export declare function isLongRunningOperation(program: Program, operation: HttpOperation): boolean;
/**
 * Return if we have a client-level LRO overloading
 * @param pathDictionary
 * @returns
 */
/**
 * Check if we have an operation-level overloading
 * @param program
 * @param operation The operation detail
 * @param existingResponseTypes auxilary param for current response types
 * @param existingResponses auxilary param for raw response data
 * @returns
 */
/**
 * Extract the operation LRO details
 * @param program
 * @param operation Operation detail
 * @param responsesTypes Calculated response types
 * @param operationGroupName Operation group name
 * @returns
 */
export declare function hasPollingOperations(program: Program, client: SdkClient, dpgContext: SdkContext): boolean;
export declare function isPagingOperation(program: Program, operation: HttpOperation): boolean;
export declare function hasPagingOperations(program: Program, client: SdkClient, dpgContext: SdkContext): boolean;
export declare function extractPagedMetadataNested(program: Program, type: Model): PagedResultMetadata | undefined;
export declare function getSpecialSerializeInfo(paramType: string, paramFormat: string): {
    hasMultiCollection: boolean;
    hasPipeCollection: boolean;
    hasSsvCollection: boolean;
    hasTsvCollection: boolean;
    hasCsvCollection: boolean;
    descriptions: string[];
    collectionInfo: string[];
};
export declare function hasCollectionFormatInfo(paramType: string, paramFormat: string): boolean;
export declare function getCollectionFormatHelper(paramType: string, paramFormat: string): string | undefined;
export declare function getCustomRequestHeaderNameForOperation(route: HttpOperation): string | undefined;
export declare function isCustomClientRequestIdParam(param: HttpOperationParameter): boolean;
export declare function isIgnoredHeaderParam(param: HttpOperationParameter): boolean;
export declare function parseNextLinkName(paged: PagedResultMetadata): string | undefined;
export declare function parseItemName(paged: PagedResultMetadata): string | undefined;
