import { Maybe } from './maybe';
export declare const safeInit: (as: A[]) => Maybe;
export declare const safeHead: (as: A[]) => Maybe;
export declare const safeLast: (as: A[]) => Maybe;
export declare const safeTail: (xs: A[]) => Maybe;
declare type PossibleKeyValue = A extends keyof O ? keyof O[A] : {};
/**
* takes an key (or index) and an array or object and returns
* a Maybe. A Just containing the value of that object at key
* or a Nothing if there is no value at the key index.
*/
export declare function safeProp(k: A, obj: O): Maybe>;
export declare function safeProp(k: A): (obj: O) => Maybe>;
export declare function safeIndex(index: B & number, arr: A & {}[]): Maybe;
export declare function safeIndex(index: B | number): (arr: A) => Maybe;
export {};