import { HasuraActionPayload, HasuraEventPayload, HasuraScheduledTriggerPayload } from "./types";
declare const LEVEL_INFO = "info";
declare const LEVEL_DEBUG = "debug";
declare const LEVEL_WARN = "warn";
declare const LEVEL_ERROR = "error";
declare type LogLevel = typeof LEVEL_INFO | typeof LEVEL_DEBUG | typeof LEVEL_WARN | typeof LEVEL_ERROR;
export declare type Logger = {
    readonly log?: (...args: any[]) => void;
    readonly [LEVEL_DEBUG]: (...args: any[]) => void;
    readonly [LEVEL_INFO]: (...args: any[]) => void;
    readonly [LEVEL_WARN]: (...args: any[]) => void;
    readonly [LEVEL_ERROR]: (...args: any[]) => void;
};
export declare const defaultLogger: {
    log: {
        (...data: any[]): void;
        (message?: any, ...optionalParams: any[]): void;
    };
    debug: {
        (...data: any[]): void;
        (message?: any, ...optionalParams: any[]): void;
    };
    info: {
        (...data: any[]): void;
        (message?: any, ...optionalParams: any[]): void;
    };
    warn: {
        (...data: any[]): void;
        (message?: any, ...optionalParams: any[]): void;
    };
    error: {
        (...data: any[]): void;
        (message?: any, ...optionalParams: any[]): void;
    };
};
declare type PrintLogPayload = {
    readonly message: string;
    readonly level: LogLevel;
    [key: string]: any;
};
export declare function getActionUserID(payload: HasuraActionPayload): string | null;
export declare function getActionUserRole(payload: HasuraActionPayload): string | null;
export declare function getEventUserID(payload: HasuraEventPayload): string | null;
export declare function getEventUserRole(payload: HasuraEventPayload): string | null;
export declare function printLog(logger: Logger, payload: PrintLogPayload): void;
export declare function validateActionPayload<P extends HasuraActionPayload = HasuraActionPayload>(input: unknown): P;
export declare function validateEventPayload<P extends HasuraEventPayload = HasuraEventPayload>(input: unknown): P;
export declare function validateScheduledTriggerPayload<P extends HasuraScheduledTriggerPayload = HasuraScheduledTriggerPayload>(input: unknown): P;
export {};
