import type { NaturalNumber } from "../../../../common/CustomTypes/Numerics";
import type { Ref, ResourceBase } from "../../Common";
import type { ResourceId } from "../../ResourceId";
export declare type ApiType = 'resource.api';
export interface Api extends ResourceBase {
    type: ApiType;
    endpoints: Ref[];
    cors: Cors;
    minCompressionBytes?: NaturalNumber | 0;
    defaultAuthorizer?: ResourceId | null;
    logLevel?: LogLevel;
}
export declare type CorsNoneType = 'api.cors.none';
export interface CorsNone {
    type: CorsNoneType;
}
export declare type CorsSimpleType = 'api.cors.simple';
export interface CorsSimple {
    type: CorsSimpleType;
    origins: string;
}
export declare type CorsType = CorsNoneType | CorsSimpleType;
export declare type Cors = CorsNone | CorsSimple;
export declare type CorsResourceByType = {
    [K in CorsNoneType]: CorsNone;
} & {
    [K in CorsSimpleType]: CorsSimple;
};
export declare type LogLevel = 'error' | 'full' | 'info' | 'off';
export declare const logLevels: readonly LogLevel[];
export declare const isLogLevel: import("@altostra/type-validations").TypeValidation<LogLevel>;
export declare const MAX_MIN_COMP_BYTES: number;
export declare const isApi: import("@altostra/type-validations").ObjectOfTypeValidation<Api>;
